檔案描述符與檔案指標的相互轉化

2021-06-08 05:46:25 字數 823 閱讀 8938

1檔案描述符,在linux系統中,裝置也是以檔案的形式存在,要對該裝置進行操作就必須先開啟這個檔案,開啟這個檔案就會獲得這個檔案描述符,它是個很小的正整數,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。

檔案描述符的優點:相容posix標準,許多linux和unix系統呼叫都依賴於它。

缺點:不能移植到非unix系統上,也不直觀。

檔案指標,c語言中使用的是檔案指標而不是檔案描述符作為i/o的控制代碼,「檔案指標(file pointer)」指向程序使用者區中的乙個被稱為file結構的資料結構。file結構包括乙個緩衝區和乙個檔案描述符值。而檔案描述符值是檔案描述符表中的乙個索引。從某種意義上來說,檔案指標就是控制代碼的控制代碼。

2. 檔案指標/控制代碼(file*)、檔案描述符以及檔案路徑(filepath)的相互轉換

檔案路徑 到 檔案指標:filepath --fopen()-->file*;

檔案路徑 到 檔案描述符:filepath--open()--fd;

檔案描述符 到 檔案指標:fd--fdopen()-->file*;

檔案指標 到 檔案描述符:file*--fileno()--->fd;

3.示列:

int main(int argc, char **argv)

檔案描述符和檔案指標的相互轉換

1檔案描述符,在linux系統中,裝置也是以檔案的形式存在,要對該裝置進行操作就必須先開啟這個檔案,開啟這個檔案就會獲得這個檔案描述符,它是個很小的正整數,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。檔案描述符的優點 相容posix標準,許多linux和unix系統呼叫都依賴...

C語言檔案指標和檔案描述符相互轉換

記錄一下 檔案指標向檔案描述符轉換的時候用fileno 函式沒問題,然而檔案描述符向檔案指標轉換的時候卻出現問題,大於2以上的值就出錯 用fdopen 函式。結果採用iob func 函式卻可以,暫時記錄一下,後面有時間再 其中的原因。char s hello k7k file fp1 fopen ...

檔案描述符與檔案指標

檔案描述符這一概念往往只適用於unix linux這樣的作業系統。什麼是檔案描述符?程序利用檔案描述符來訪問檔案。檔案描述符在形式上是乙個非負整數。實際上,它是乙個索引值,指向每乙個程序所維護的該程序開啟檔案的記錄表。當程式開啟乙個現有檔案或者建立乙個新檔案時,程序就返回乙個檔案描述符。每個linu...