この記事では、主に Linux でのファイル記述子とファイル ポインターに関する関連情報を紹介します 必要な方は、
Linux でのファイル記述子とファイル ポインターを参照してください
ファイル識別子:
まず、始めましょう。ファイル識別子とは何か理解していますか?ファイル記述子は、コンピューターサイエンスの用語で、ファイルの Linux では、各プロセスはプロセス制御ブロック (PCB) にファイル記述子テーブルを保存します。ファイル記述子は、このテーブルのインデックス であり、各テーブルには、開かれたファイルへのポインター
があります。 。 各 Linux プロセスには、3 つの標準ストリームに対応する 3 つの標準ファイル記述子が必要です。integervalue | name(unistd.h) シンボル | 定数 | (stdio.h) ファイルストリーム|
---|---|---|---|
STDIN_ | ファイルいいえ | stdin||
標準出力 | STDOUT_FILENO | stdout | |
標準エラー | STDERR_FILENO | stderr |
read()、write()、s
()、f
chmod()など
select()、poll()など | |
---|---|
ファイルポインタ: | ファイルポインタはC言語で習うもので、C言語ではポインタ変数 | がファイルを指します。ファイル ポインターを介して、指定されたファイルに対してさまざまな操作を実行できます。 C 言語では、ファイル記述子の代わりにファイル ポインタを I/O ハンドルとして使用します。ファイルポインタは、プロセスのユーザー領域にある FILE 構造と呼ばれるデータ構造を指します。 FILE 構造にはバッファとファイル記述子が含まれています。
通常、ファイルポインタを取得します: | FILE *fp = fopen("test.txt","r"); ログイン後にコピー | ポインタを取得した後、ポインタ内のファイル記述子の情報を取得できます。 。
オブジェクト | は一意ではありません。
int fileno(FILE *stream); FILE *fdopen(int fd,const char *mode);
fdopen の最初のパラメータはオープンファイル記述子であり、mode は fopen と同じ、"w" や "r" などのオープン方法を表す 文字列です。 .
fileno
、ファイルストリームに対応するファイル記述子を返し、失敗した場合は -1 を返します。
以上がLinux におけるファイル記述子とファイル ポインターの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。