乙個程序為什麼會預設開啟三個標準輸入輸出

2021-08-02 11:17:03 字數 517 閱讀 8312

這其中涉及到終端登入的問題,先對終端登入進行小總結:

init在建立子程序後,子程序一直進行程式替換完成必須的處理動作,最後替換到bash,也就是我們所工作的環境,所以也就解釋bash的父程序就是init,init為什麼是1號程序。

從getty開始exec到login,再exec到bash,其實都是同乙個程序,因此控制 終端沒變,檔案描述符0、1、2也仍然指向控制終端。由於fork會複製pcb資訊,所以由shell 啟動的其它程序也都是如此。這個過程不會改變其pcb中的內容,所以getty將檔案描述符0,1,2與終端裝置關聯之後會一直處於關聯狀態,替換到bash時依舊是關聯的。當我們執行乙個程序時,都是在bash底下建立出乙個子程序,而子程序的pcb都是複製父程序的pcb,bash中的檔案描述符0,1,2已經與終端裝置相關聯,所以子程序中也是預設開啟的狀態。

注:作者初學,對於知識總結可以能有錯誤,請多多指正,多多包涵!

破譯女人的三個為什麼

有人說,女人的心是一本讀不完的書,充滿了為什麼。就說以下3個為什麼吧,你想知道隱藏在問號後面的答案嗎?1 為什麼愛吃醋?女人 善妒 尤其是在愛情 婚姻方面,幾乎個個都是醋罐子,紅樓夢 裡的王熙鳳可謂登峰造極,被稱為醋罈子甚至醋缸。時至今日,看看你周圍的女人,仍舊不乏 鳳姐 的 後來人 真是 江山代有...

乙個好漢三個幫

混跡江湖已有不少年頭,缺人氣。在創業公司做,做不出創業的氣氛來。搞技術的人其實好像並不在乎是否創業公司,只在意工資是否發得出,有沒有事情做,公司本身能否成功與自己無關。有多少人考慮過,如何成就團隊的同時成就自己?創業公司一般門檻低,容易得到乙份offer,但往往進去後就迷失掉,忘記了所處的人生階段,...

判斷乙個程序是否開啟

標頭檔案 include pragma comment lib,psapi.lib findprocess 找到自己檔名 char szname x.exe dword aprocesses 1024 cbneeded,dwprocesses char szprocessname max path ...