檔案描述符:在形式上是乙個非負整數。實際上,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。linux系統中把一切都看做檔案,包括普通檔案
-
、目錄檔案d
、字元裝置檔案c
、塊裝置檔案b
、符號鏈結檔案l
。檔案描述符是核心為了高效管理已被開啟的檔案所建立的索引(乙個非負整數),用於指代已被開啟的檔案,linux下所有的的i/o操作的系統呼叫都是通過檔案描述符執行。例如0
表示標準輸入、1
表示標準輸出、3
表示標準錯誤
,檔案描述符會在這個基礎上遞增。
檔案描述符表:程序級的列表,也就是使用者區的一部分,程序每開啟乙個檔案就會新建乙個檔案描述符,同時只能通過檔案描述符的函式訪問,否則程序無法直接對其進行訪問。
系統檔案表:系統級的列表,對當前系統的所有程序都共享,每條條目包含檔案偏移量、訪問模式以及指向它的檔案描述符的條目計數
檔案系統索引節點表:inode索引節點表(uid、gid、ctime、mtime、atime、讀寫執行許可權、鏈結數、block位置)
記錄內容
例子
linux中檔案描述符
在linux系統中,所有東西都可以看成是檔案,檔案又可以分為普通檔案,目錄檔案,鏈結檔案和裝置檔案。檔案描述符是核心為了高效管理已被開啟的檔案所建立的索引,是乙個非負整數用於指代被開啟的檔案,所有執行i o操作的系統呼叫都是通過檔案描述符。程式剛剛啟動的時候,0是標準輸入,1是標準輸出,2是錯誤輸出...
linux檔案描述符
本文介紹了檔案描述符,1 首先說什麼是檔案描述符,它有什麼作用?檔案描述符是乙個簡單的整數,用以標明每乙個被程序所開啟的檔案和socket。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案,並指定訪問該檔案的方式,呼叫成功後返回乙個檔案描述符。creat 開啟乙個檔案,如果該檔案不存在,則建立它...
linux檔案描述符
當某個程式開啟檔案時,作業系統返回相應的檔案描述符,程式為了處理該檔案必須引用此描述符。所謂的檔案描述符是乙個低階的正整數。最前面的三個檔案描述符 0,1,2 分別與標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 對應。因此,函式 scanf 使用 stdin,而函式 pri...