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