黑馬《linux系統程式設計》學習筆記(從31到35)

2021-09-05 11:17:35 字數 1227 閱讀 5353

三十一. 複習檔案描述符重定向

在下面的圖中,dup2(fd[1],1)這裡的1號檔案描述符,跟隨老的fd[1],由於這裡1號檔案描述符,已經有指向,於是原指向關係撤銷,1重新建立指向,並指向fd[1]所在。

接下來,grep "bash"這裡是從0號檔案描述符,即stdin_fileno中讀取內容,本來stdin_fileno指向的是/dev/tty,也就是終端,換言之。如果沒有管道和重定向的話,grep "bash"將直接從終端中讀取內容

然而現在,我們通過dup2(fd[0],0)這一操作,使得0號檔案描述符,重新定向到了核心緩衝區的讀端,因此,現在的grep"bash"指讀取的內容,實際是0號檔案描述符現在所指的核心緩衝區中的讀端。

三十二. 複習有血緣關係的程序間通訊思路

下圖所示,是子程序寫,父程序讀。。。

如果說父程序讀,子程序寫,那麼我們需要再建立另乙個管道,並且對於父程序,關閉寫端。對於子程序,關閉讀端。

三十三. 兄弟程序間通訊

for(; i三十四. 建立子程序需要判斷pid是否為0

三十五. 管道的讀寫行為

linux系統程式設計學習筆記

關閉檔案 linux命令列引數解析 int creat const char filename,mode t mode mode指定新建檔案的訪問許可權 return 檔案描述符fd open const char pathname,o create,mode t mode 第二個引數flags為o...

黑馬《linux系統程式設計》學習筆記(從66到70)

六十六.執行緒的概念 所以執行緒之間通訊,不可以用區域性變數 因為區域性變數在棧裡 這裡的命令可以知道,各部分大小 六十七.pthread create執行緒建立函式 arg是執行緒處理函式的引數的內容 寫乙個pthread create.c include include include incl...

Linux學習過程筆記 系統程式設計

0.系統程式設計所學到的命令是應用在notepad 中的,之前那學的linux命令列是在控制終端裡除錯用的。1.製作最小linux映象太麻煩以後學習。3.用u盤除錯程式。1.在root home 新建linuxsystemcode 新建功能名資料夾。2.連好超級終端,新建.c檔案,用notepad ...