C語言 檔案描述符

2021-08-08 06:00:46 字數 440 閱讀 6421

(以下程式為linux或unix平台下)

例: int f1,f2 ;

f1 = open(「test1」,o_rdonly,0) ;

close(f1) ;

f2 = open(「test2」,o_rdonly,0) ;

printf(「f2=%d\n」,f2) ;

最後應該輸出什麼?

f1,f2代表的是檔案描述符,unix程序從生命週期開始時,開啟的描述符賦給stdin(描述符0),stdout(描述符1),stderr(描述符2)。open函式總是返回最低的未開啟的描述符,所以第一次呼叫open會返回描述符3。呼叫close函式則會釋放描述符3。如果再呼叫open函式則檔案描述符又會是3。若為釋放之前的檔案描述符3,則再開啟乙個檔案時,檔案描述符就變為4。以此類推……
所以最後輸出為: f2=3 。

mysql 檔案描述符 檔案描述符

toc 首先,linux的世界裡一切皆為檔案,無論是裝置還是乙個socket連線。檔案又可分為 普通檔案 目錄檔案 鏈結檔案和裝置檔案。檔案描述符 file descriptor 是核心為了高效管理已被開啟的檔案所建立的索引,其是乙個非負整數 通常是小整數 用於指代被開啟的檔案,所有執行i o操作的...

C語言檔案指標和檔案描述符

include int fsync intfd int fdatasync intfd include int fflush file stream 注 fsync引數是檔案描述符,fflush引數是檔案指標 c語言檔案指標域檔案描述符之間可以相互轉換 int fileno file stream ...

檔案描述符

檔案描述符 是個很小的正整數,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。檔案描述符的優點 相容posix標準,許多 linux 和unix 系統呼叫都依賴於它。檔案描述符的缺點 不能移植到unix以外的系統上去,也不直觀。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案...