open("/dev/null",o_rdwr)的問題

 open("/dev/null",..)

很多程序在一開始的時候要做這樣的處理
/*
* make sure we have stdin/stdout/stderr reserved
*/

while((t = open("/dev/null",O_RDWR)) < 3 && T >= 0)
if(t >= 3) close(t)

寫入/dev/null的東西會被系統丟掉
就像註釋寫的那樣,對stdin/stdout/stderr進行保護
代碼中利用while先把文件描述符0,1,2分配出去,以後再分配
的時候就不會將stdin/stdout/stderr打開,以達到保護目的。

發佈了32 篇原創文章 · 獲贊 6 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章