FILE

改めて、FILE型(FILE構造体)について調べていく。

Man page of FOPEN
Bioinformaticsのお勉強: ファイル記述子、ファイル型、ファイルポインタ、stdin、stdout、stderrについての考察

stdio.h
stdio.h

/usr/includeに移動してstdio.hを開く。

FILEで検索
FILEで検索

"FILE"で検索。

bits/typesの下にありそう
bits/typesの下にありそう

bits/typesの下にありそう。

FILE.hや__FILE.hやstruct_FILE.hにありそう。
FILE.hや__FILE.hやstruct_FILE.hにありそう。

FILE.hや__FILE.hやstruct_FILE.hにありそう。

FILE.hを見ると、

実態は_IO_FILE
実態は_IO_FILE

実態は、struct _IO_FILE。
__FILE.hを見ると、

こちらもstruct _IO_FILE
こちらもstruct _IO_FILE

こちらもstruct _IO_FILE。
struct_FILE.hを開いて、

_IO_FILEで検索
_IO_FILEで検索

_IO_FILEで検索すると、

これが本体っぽい
これが本体っぽい

これが本体っぽい・・・。
_filenoがファイルディスクリプタかな。
というわけで、_filenoを出力してみる。

fp->_filenoという感じでアクセスできて、ファイルディスクリプタの値だったら・・・。

$ vi FILE.c
$ ls
FILE  FILE.c  test.txt
$ gcc FILE.c -o FILE
$ ./FILE
fp->_fileno = 3
$

0は標準入力、1は標準出力、2は標準エラー出力、で予約されているので、3が出てくるということは、これがファイルディスクリプタだろう。

Sample/c/FILE/FILE/src/FILE at master · bg1bgst333/Sample · GitHub