1. 程式人生 > >檔案描述符,檔案控制代碼的區別

檔案描述符,檔案控制代碼的區別

檔案控制代碼:是windows下概念,在linux/unix下沒有控制代碼這一說法,

在linux/unix下都是"檔案描述符",是整形的

如果使用了標準C庫的函式獲得檔案描述符,那麼就不要使用win32的檔案操作函式,因為win32的檔案操作函式需要win32控制代碼,

檔案描述符是linux/unix作業系統中特有的概念。其相當於windows系統中的控制代碼。習慣性的,我們也把linux檔案描述符稱之控制代碼。

Linux系統中, 每當程序開啟一個檔案時,系統就為其分配一個唯一的整型檔案描述符,用來標識這個檔案。標準C中每個程序預設開啟的有三個檔案,標準輸入,標準輸出,標準錯誤,分別用一個FILE結構的指標來表示,即stdin,stout,sterr,這三個結構分別對應著三個檔案描述符0,1,2。

檔案描述符是一個簡單的整數,用以標明每一個被程序所開啟的檔案和socket。第一個開啟的檔案是0,第二個是1,依此類推。linux 作業系統通常對每個程序l能開啟的檔案數量有一個限制。

linux系統預設的最大檔案描述符限制是1024

[[email protected] ~]# ulimit -n
1024

當某個服務使用者比較多時,1024個控制代碼明顯不夠用,比如web伺服器。我們使用ulimit -HSn 65536來設定最大檔案描述符數

將此命令寫入rc.local中,就可以完美突破linux系統的檔案描述符限制了。