**** 前提必須要有讀卡機 + 電腦 ****
步驟如下:
1. 首先必須臨櫃告知行員要"開啟網路設定約定帳戶功能",行員會幫你升級帳戶等級,升級後你就有自行設定的權限,臨櫃設定後的次一工作日生效。
2. 接下來你必須申請網路銀行,因為要設定約定帳戶,只有"網路銀行"或"行動銀行"(手機APP)可以做設定(網路ATM無法設定),網路銀行申請網址如下(必須用到讀卡機):
申請網路銀行/密碼重置 --> WebATM申請(連接讀卡機)
https://mma.sinopac.com/MemberPortal/Member/ApplyMmaIndex.aspx
3. 網路銀行申請完成之後,馬上就可以登錄網路銀行,登陸之後,請選擇:
申請/設定 --> 常用非約定帳號--> 約定轉入帳號 --> 新增帳號
以上步驟完成,就可以了~
2019年11月16日 星期六
2019年10月15日 星期二
一版source code要編譯出兩個版本,#ifdef 加上 -D Macro 的用法
假設今天我有一隻code,我想要讓他編譯的時候可以編譯出VER1與VER2的不同結果,以不動到source code為原則,該怎麼作呢?
首先Code必須這樣寫:
=========== source.c =================
#include <stdio.h>
int main()
{
#ifdef VER1
printf("This is VER1 !\n");
#else
printf("This is VER2 !\n");
#endif
return 0;
}
====================================
編譯的時候,如果要編譯出VER1,則必須如下修改:
gcc source.c -o source -D VER1
如果要編譯出VER2,則必須如下修改:
gcc source.c -o source -D VER2
若是這些#ifdef是要改在 Linux Kernel,在source code 加完之後,-D Macro的部分可以直接加在 Linux Kernel的Makefile裡面,請找看看CFLAGS相關的,並且加在CFLAGS上面試試看,編譯後應該可以成功。
另外Makefile加完成之後,編譯時記得要下:
# make VER1=1
這樣子編譯才會跑到VER1定義的地方
首先Code必須這樣寫:
=========== source.c =================
#include <stdio.h>
int main()
{
#ifdef VER1
printf("This is VER1 !\n");
#else
printf("This is VER2 !\n");
#endif
return 0;
}
====================================
編譯的時候,如果要編譯出VER1,則必須如下修改:
gcc source.c -o source -D VER1
如果要編譯出VER2,則必須如下修改:
gcc source.c -o source -D VER2
若是這些#ifdef是要改在 Linux Kernel,在source code 加完之後,-D Macro的部分可以直接加在 Linux Kernel的Makefile裡面,請找看看CFLAGS相關的,並且加在CFLAGS上面試試看,編譯後應該可以成功。
另外Makefile加完成之後,編譯時記得要下:
# make VER1=1
這樣子編譯才會跑到VER1定義的地方
2019年9月24日 星期二
dd 檔案合併,詳細使用方法
dd基本的參數描述如下:
*基本輸入輸出
if=FILE:輸入名稱
of=FILE:輸出名稱
*做相對應的轉換conv=[lcase/ucase/nocreat/notrunc/fdatasync]
lcase:大寫字母轉小寫
ucase:小寫字母轉大寫
nocreat:不要建立輸出檔案
notrunc:input小於output時,仍維持output大小
fdatasync:讓資料同步寫入硬碟
*區塊參數,分別有以下四個參數可以調整:
bs=[bytes]:等同於同時設定ibs和obs,一次讀或寫的block size。
ibs=[bytes]:指定每次讀取的block size(default 512 bytes)
obs=[bytes]:指定每次寫入的block size(default 512 bytes)
count=[number]:只處理前[number]輸入區塊,block size要參考ibs。
seek=[number]:輸出檔案跳過前[number]個區塊,block size要參考obs。
skip=[number]:輸入檔案跳過前[number]個區塊,block size要參考ibs。
下面給幾個使用範例:
[example_1] 使用dd產生一個2MB的檔案,其內容皆為0xff
$ dd if=/dev/zero ibs=1M count=2 | tr "\000" "\377" >rom.bin
[example_2] 使用dd把一個835KB的檔案(flash.bin)放到 2MB的rom.bin檔案的最前面
$ dd if=flash.bin of=rom.bin bs=1K count=835 conv=notrunc
[example_3] 使用dd把一個64KB的檔案(env.bin)放到2MB的rom.bin檔案的960KB位置之後
$ dd if=env.bin of=rom.bin bs=1K count=64 seek=960 conv=notrunc
[example_4] 使用dd把一個1024KB的檔案(jffs2.bin)放到2MB的rom.bin檔案的1024KB之後的位置
$ dd if=image.jffs2 of=rom.bin bs=1K count=1024 seek=1024 conv=notrunc
最終的rom.bin內容如下圖所示:
*產生空的1MB 的jffs2 image的指令(jffs2_dir為一個空資料夾):
$ mkfs.jffs2 -r jffs2_dir -o image.jffs2 --pad=0x100000
若是沒有mkfs.jff2指令,請先使用apt-get install mtd-util
*基本輸入輸出
if=FILE:輸入名稱
of=FILE:輸出名稱
*做相對應的轉換conv=[lcase/ucase/nocreat/notrunc/fdatasync]
lcase:大寫字母轉小寫
ucase:小寫字母轉大寫
nocreat:不要建立輸出檔案
notrunc:input小於output時,仍維持output大小
fdatasync:讓資料同步寫入硬碟
*區塊參數,分別有以下四個參數可以調整:
bs=[bytes]:等同於同時設定ibs和obs,一次讀或寫的block size。
ibs=[bytes]:指定每次讀取的block size(default 512 bytes)
obs=[bytes]:指定每次寫入的block size(default 512 bytes)
count=[number]:只處理前[number]輸入區塊,block size要參考ibs。
seek=[number]:輸出檔案跳過前[number]個區塊,block size要參考obs。
skip=[number]:輸入檔案跳過前[number]個區塊,block size要參考ibs。
下面給幾個使用範例:
[example_1] 使用dd產生一個2MB的檔案,其內容皆為0xff
$ dd if=/dev/zero ibs=1M count=2 | tr "\000" "\377" >rom.bin
[example_2] 使用dd把一個835KB的檔案(flash.bin)放到 2MB的rom.bin檔案的最前面
$ dd if=flash.bin of=rom.bin bs=1K count=835 conv=notrunc
[example_3] 使用dd把一個64KB的檔案(env.bin)放到2MB的rom.bin檔案的960KB位置之後
$ dd if=env.bin of=rom.bin bs=1K count=64 seek=960 conv=notrunc
[example_4] 使用dd把一個1024KB的檔案(jffs2.bin)放到2MB的rom.bin檔案的1024KB之後的位置
$ dd if=image.jffs2 of=rom.bin bs=1K count=1024 seek=1024 conv=notrunc
最終的rom.bin內容如下圖所示:
*產生空的1MB 的jffs2 image的指令(jffs2_dir為一個空資料夾):
$ mkfs.jffs2 -r jffs2_dir -o image.jffs2 --pad=0x100000
若是沒有mkfs.jff2指令,請先使用apt-get install mtd-util
2019年9月20日 星期五
C 更改檔名 example
紀錄C當中,一個簡單的改檔名function,rename();
#include <stdio.h>
int main () {
int ret;
char oldname[] = "file.txt";
char newname[] = "newfile.txt";
ret = rename(oldname, newname);
if(ret == 0) {
printf("renamed successfully");
} else {
printf("unable to rename");
}
return 0;
}
#include <stdio.h>
int main () {
int ret;
char oldname[] = "file.txt";
char newname[] = "newfile.txt";
ret = rename(oldname, newname);
if(ret == 0) {
printf("renamed successfully");
} else {
printf("unable to rename");
}
return 0;
}
2019年9月3日 星期二
[shell script] 2進制,10進制,16進制的轉換方法
1. 搭配ibase, obase, bc 能夠達到進制轉換的目的
2. ibase => input base為幾進制,obase => output base為幾進制
3. 注意須先寫obase,再去寫ibase
上面幾點注意事項了解了之後,來看實際範例:
example: 16進制"35"轉10進制
echo "obase=10; ibase=16; 35" | bc
=> 53
example: 16進制"C0"轉10進制
echo "obase=10; ibase=16; C0" | bc
=>192
實際應用可以這樣
value=`echo "obase=10; ibase=16; C0" | bc`
echo $value
=>192
或是可以這樣
tmp=C0
value=`echo "obase=10; ibase=16; $tmp" | bc`
echo $value
=>192
2. ibase => input base為幾進制,obase => output base為幾進制
3. 注意須先寫obase,再去寫ibase
上面幾點注意事項了解了之後,來看實際範例:
example: 16進制"35"轉10進制
echo "obase=10; ibase=16; 35" | bc
=> 53
example: 16進制"C0"轉10進制
echo "obase=10; ibase=16; C0" | bc
=>192
實際應用可以這樣
value=`echo "obase=10; ibase=16; C0" | bc`
echo $value
=>192
或是可以這樣
tmp=C0
value=`echo "obase=10; ibase=16; $tmp" | bc`
echo $value
=>192
============= 如果沒有 bc 可以使用, 則用下面方式(only 16轉10) ============
echo $((0x35))
=> 53
使用變數的用法
hexVal=35
echo $((0x${hexVal}))
=> 53
2019年8月8日 星期四
使用ethtool開啟/關閉 wol功能的指令
使用說明:
開啟Wake on lan ==> ethtool -s [Interface] wol g
關閉Wake on lan ==> ethtool -s [Interface] wol d
# ethtool -s eth0 wol g
# ethtool -s eth0 wol d
最後可以使用ethtool查看WOL是否有開啟
開啟Wake on lan ==> ethtool -s [Interface] wol g
關閉Wake on lan ==> ethtool -s [Interface] wol d
# ethtool -s eth0 wol g
# ethtool -s eth0 wol d
最後可以使用ethtool查看WOL是否有開啟
2019年8月2日 星期五
equal to linux "which" command in windows
在Windows環境下,可以使用"where" command,其功能等同於linux底下的which
例如: 我要查詢g++的路徑
C:\>where g++
C:\Dev-Cpp\bin\g++.exe
例如: 我要查詢g++的路徑
C:\>where g++
C:\Dev-Cpp\bin\g++.exe
訂閱:
文章 (Atom)