5

重複の可能性:
ファイル記述子とファイルポインタの違いは何ですか?

このようにファイルを開くと:

FILE *fp = fopen("mr32.txr","r");

それではfp、ファイルポインタまたはファイル記述子ですか?それらの違いは何ですか?

4

3 に答える 3

4

FILEそれがあなたが求めているものであるならば、それは構造へのポインタです。ファイル記述子は整数です。FILE構造とそれに関連するAPIは、C標準の一部です。ファイル記述子とそれに関連する関数はそうではありません。実際には、どちらの関数セットも同じように使用できますが、デフォルトの動作にはいくつかの顕著な違いがあります。マニュアルページを読んで、どの関数がどの種類のパラメータを受け取るかを理解できます。fdopen(3)ファイル記述子があるシステムでは、通常、この関数を使用してFILE、開いているファイル記述子から構造を取得fileno(3)したり、その逆を行ったりすることができます。

于 2011-11-19T04:31:57.620 に答える
4

fp は FILE ポインタです

ファイルポインタ:

  1. ハイレベルインターフェースです
  2. fread() および fwrite() 関数に渡される
  3. バッファリング、エラー表示、EOF 検出などが含まれます。
  4. より高い移植性と効率性を提供します。

ファイル記述子:

  1. 低/カーネルレベルのハンドラー
  2. UNIX システムコールの read() と write() に渡す
  3. バッファリングなどの機能は含まれていません
  4. 移植性が低く、効率が悪い

このリンクに基づいて

于 2011-11-19T04:41:12.617 に答える
2

FILEファイル記述子を含む、ファイルに関する情報を含む構造体です。

于 2011-11-19T04:34:20.363 に答える