Android培訓班(27) – Android移動開發技術文章_手機開發 Android移動開發教學課程

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>


初看這段代碼時,感覺非常奇怪,沒有看到任何打開文件的函數,也沒有任何關閉文件的函數,就可以直接操作讀取和寫入。難道文件是可以自動打開的嗎?從linux系統調用API裡知道是不可能啊!這時,反復查看輸入的命令行,如下:


rgb2565 –rle <xiyang.raw >initlogo.rle


從這個命令行裡,看到一些眉目瞭吧?兩個文件為什麼要添加像個括號的東西呢?是啊,這兩個括號是有特別用途的,對於我剛從WINDOWS轉過的程序員來說,是比較奇怪,後來仔細地查看shell調用,詳細介紹如下:


標準輸入
標準輸入是文件描述符0.它是命令的輸入,缺省是鍵盤,也可以是文件或其它的命令輸出


標準輸出
標準輸出是文件描述符1.它是命令的輸出,缺省是屏幕,也可以是文件



標準錯誤
標準錯誤是文件件描述符2。它是命令錯誤碼率的輸出,缺省是屏幕,同樣也可以是文件.



重定向操作符描述
> 將命令輸出寫入到文件或設備(如打印機),而不是命令提示符窗口或句柄。



< 從文件而不是從鍵盤或句柄讀入命令輸入。



>> 將命令輸出添加到文件末尾而不刪除文件中已有的信息。


>& 將一個句柄的輸出寫入到另一個句柄的輸入中。


<& 從一個句柄讀取輸入並將其寫入到另一個句柄輸出中。


| 從一個命令中讀取輸出並將其寫入另一個命令的輸入中。也稱作管道。


常用文件重定向命令


Shell代碼


command >filename       把標準輸出重定向到一個新文件中


command >>filename      把標準輸出重定向到一個文件中(追加)


command 1>fielname      把標準輸出重定向到一個文件中


command >filename 2>&1   把標準輸出和標準錯誤一起重定向到一個文件中


command 2 > filename 把標準錯誤重定向到一個文件中


command 2 >> filename 把標準輸出重定向到一個文件中(追加)


command >> filename 2>&1 把標準輸出和標準錯誤一起重定向到一個文件中(追加)


command < filename >filename2 把command命令以filename文件作為標準輸入,以filename文件作為標準輸出


command < filename 把command命令以filename文件作為標準輸入


command << delimiter 把從標準輸入中讀入,直至遇到delimiter分界符


command <&m 把把文件描述符m作為標準輸入


command >&m 把把標準輸出重定向到文件描述符m中



從上面詳細說明中,就可以知道這個命令行特別地方瞭。第二個參數<xiyang.raw就是把文件xiyang.raw重定向為標準輸入,也就是原始格式的數據作為輸入文件打開。


第三個參數>initlogo.rle,就是作為標準輸出文件打開瞭。


 


通過這段程序,可以瞭解寫程序的人對linux很熟悉,並且利用到瞭極致,連文件的打開和關閉的事情都省瞭,極其高效

發佈留言