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)
C語言檔案指標和檔案描述符相互轉換
記錄一下 檔案指標向檔案描述符轉換的時候用fileno 函式沒問題,然而檔案描述符向檔案指標轉換的時候卻出現問題,大於2以上的值就出錯 用fdopen 函式。結果採用iob func 函式卻可以,暫時記錄一下,後面有時間再 其中的原因。char s hello k7k file fp1 fopen ...
檔案指標和檔案描述符
原文 檔案描述符 在linux系統中,裝置也是以檔案的形式存在,要對該裝置進行操作就必須先開啟這個檔案,開啟檔案就會獲得檔案描述符,它是個很小的正整數。每個程序在pcb process control block 中儲存著乙份檔案描述符表,檔案描述符就是這個表的索引,每個表項都有乙個指向已開啟檔案的...
檔案指標和檔案描述符
檔案描述符 在linux系統中,裝置也是以檔案的形式存在,要對該裝置進行操作就必須先開啟這個檔案,開啟檔案就會獲得檔案描述符,它是個很小的正整數。每個程序在pcb process control block 中儲存著乙份檔案描述符表,檔案描述符就是這個表的索引,每個表項都有乙個指向已開啟檔案的指標。...