Linux中檔案描述符和開啟檔案之間的關係

2022-09-02 18:00:24 字數 844 閱讀 5429

檔案描述符:在形式上是乙個非負整數。實際上,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。

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...