可能重複:
What's the difference between a file descriptor and file pointer?文件描述符和文件指針有什麼區別?
如果我打開文件是這樣的:
FILE *fp = fopen("mr32.txr","r");
然後fp
是文件指針或文件描述符?他們之間有什麼區別?
可能重複:
What's the difference between a file descriptor and file pointer?文件描述符和文件指針有什麼區別?
如果我打開文件是這樣的:
FILE *fp = fopen("mr32.txr","r");
然後fp
是文件指針或文件描述符?他們之間有什麼區別?
FP是一個文件指針
文件指針:
文件描述符:
基於此link
這是一個指向FILE
結構的指針,如果這就是你要求的。文件描述符是一個整數。結構及其相關的API是C標準的一部分。文件描述符及其相關功能不是。在實踐中,你可以交替使用任何一組函數,儘管在這裏和那裏的默認行爲有一些顯着的差異。您可以閱讀手冊頁以確定哪些功能採用哪種參數。在具有文件描述符的系統上,通常可以使用fdopen(3)
函數從打開的文件描述符中獲取FILE
結構,並通過fileno(3)
轉換爲其他方式。
FILE
是一個包含有關文件信息的結構,包括文件描述符。
值得注意的是FILE是一個不透明的指針(它指向的內存對於使用該接口的代碼沒有意義)。還值得注意的是,POSIX open返回一個文件描述符。 –
值得注意的是,'fdopen' *創建一個新的* FILE對象(需要關閉,關閉時文件描述符也關閉),而'fileno'只是*返回現有的*文件描述符'FILE'。 –