2011-11-19 99 views

回答

3

FP是一個文件指針

文件指針:

  1. 它是高級接口
  2. 傳遞給的fread()和fwrite()函數
  3. 包括緩衝,錯誤指示和EOF檢測等。
  4. 提供更高的便攜性和效率。

文件描述符:

  1. 低/內核級別的處理程序
  2. 過時閱讀()和write()UNIX系統調用
  3. 不包括緩衝和這樣的功能
  4. 便攜性較差,效率不高

基於此link

4

這是一個指向FILE結構的指針,如果這就是你要求的。文件描述符是一個整數。結構及其相關的API是C標準的一部分。文件描述符及其相關功能不是。在實踐中,你可以交替使用任何一組函數,儘管在這裏和那裏的默認行爲有一些顯着的差異。您可以閱讀手冊頁以確定哪些功能採用哪種參數。在具有文件描述符的系統上,通常可以使用fdopen(3)函數從打開的文件描述符中獲取FILE結構,並通過fileno(3)轉換爲其他方式。

+0

值得注意的是FILE是一個不透明的指針(它指向的內存對於使用該接口的代碼沒有意義)。還值得注意的是,POSIX open返回一個文件描述符。 –

+0

值得注意的是,'fdopen' *創建一個新的* FILE對象(需要關閉,關閉時文件描述符也關閉),而'fileno'只是*返回現有的*文件描述符'FILE'。 –

2

FILE是一個包含有關文件信息的結構,包括文件描述符。