竟然一個禮拜沒有寫網誌,我最近果然是太忙了=__=
這篇筆記也是拖了超過一個禮拜
原因是這次的課程內容越來越難,也越來越聽不懂
不知道該寫什麼才好...
接續第十一章的Process
‧pipeopen非最好方式,建議用dup
‧Makefile預設的編譯指令為cc
在Makefile中加一行CC = gcc可改用gcc編譯,聽說效果會比較好
‧system1、pexec老師上次已經講過了,不再重寫一遍
‧fork1
老師小改了裡面的程式碼為fork1a.c
多了顯示pid跟ppid數值
至於這有什麼用,老實說我忘了╮( ̄▽ ̄")╭
‧第二次作業可用exec,效果是運行某個Process並且不再返回
可輸入man exec查看關於他的說明
excelp的p代表path
excelv的v代表vector
‧pexec
因為不再返回,原本最後應該顯示done字樣沒有出來
如果把execlp改成execl,done就會出來了
因為那一行錯誤了......
老師將pexec修改,存成pexec1.c
分別是各種不同的execl的結果,請自行切換註解觀看
如下圖就是錯誤的畫面
想要顯示錯誤訊息的話,先#include <errno.h>
然後用變數errno顯示錯誤代碼,strerror(errno)顯示錯誤訊息
‧想知道某個系統指令放在哪裡的話,請打which
如which ps就會顯示放在/bin/ps
‧wait
講了一堆有的沒的疆屍...
修改wait.c成wait1.c
在程式中間加上system("ps ef");
狀態會顯示Z+,代表這個process目前是疆屍狀態(Zombine)
等到父親結束,兒子才會真正結束
wait完再顯示ps ef,發現就沒有zombine了
※如果在Xubuntu複製的東西無法貼到Windows的話
先在Windows隨便複製一個東西就可以了
‧upper
./upper < file.txt > aa - 將file.txt變大寫再輸出到aa
‧useupper
此程式其實只是把屬性傳到上面的upper這個程式而已
請自行參考程式碼
‧cat - >aaa - 將螢幕上輸入的字輸出到檔案中
-是標準輸入,cat -並不是開啟-這個檔案
而是可以在螢幕上打字輸入內容
缺點是不能回去修改上一行
結束輸入直接按Ctrl+C即可
===
ch 13 Pipes 管線
===
‧popen1
執行指令uname -a產生pipe,先把buffer清成0
將內容讀到read_fp,再用printf印出來
‧popen2
將寫出去的字串讓b程式去讀,此範例是呼叫od -c
‧od - 將檔案用八進位方式顯示
範例:od popen1.c
od -c popen1.c - 秀字元
‧xxd - 跟od類似,只是是以十六進位方式顯示
xxd -g 1 popen1.c - 以多少字元為一組
下圖就是每個字元都分開的樣子
也可以直接執行od跟xxd
在螢幕上打完字後,用Ctrl+D結束輸入
他會將你所打的字用八或十六進位顯示結果
第二次作業寫法跟pipe5類似,記得要參考
好康道相報
※欲轉貼本站文章者,只要註明出處及網址即可,不需我同意了,謝謝您的配合
※留悄悄話的網友請注意:如果您非痞客邦會員(包含使用FB/Google+帳號),是看不到回覆的喔
※痞客邦會自動將疑似廣告留言隱藏,因此若留言後看不到,可能是被系統自動隱藏了,由於我現在很久才會開一次網誌,有看到時我才會將非廣告留言解開,敬請見諒
※留悄悄話的網友請注意:如果您非痞客邦會員(包含使用FB/Google+帳號),是看不到回覆的喔
※痞客邦會自動將疑似廣告留言隱藏,因此若留言後看不到,可能是被系統自動隱藏了,由於我現在很久才會開一次網誌,有看到時我才會將非廣告留言解開,敬請見諒
- Dec 07 Sun 2008 00:37
Linux程設學習筆記(十二)
全站熱搜
留言列表