File構造の意味
ここでhでは構造を定義します:typedef struct_iobuf { int _count; int _fd; int _flags; int _bufsiz; unsigned char *_buf; unsigned char *_ptr;} FILE;具体的な意味は:fdはオペレーティングシステムが割り当てるファイル記述子、すなわちオペレーティングハンドルである. _bufとは、バッファの内容をいう.デフォルトの作成サイズはstream->_ですbuf = (unsigned char *) malloc(BUFSIZ) BUFSIZ = 4096 _bufsizeとはバッファの大きさを指す. _flagsとは、ファイル操作に対する権限フラグである.
#define _IOFBF 0x000
#define _IOREAD 0x001
#define _IOWRITE 0x002
#define _IONBF 0x004
#define _IOMYBUF 0x008
#define _IOEOF 0x010
#define _IOERR 0x020
#define _IOLBF 0x040
#define _IOREADING 0x080
#define _IOWRITING 0x100
#define _IOAPPEND 0x200
#define _IOFIFO 0x400
注記cygwin/usr/include/mingw/stdioを参照.h
_ptrの初期値はbuffアドレスであり、buff中のデータを操作するために用いる.
_countとは、buffにおける有効byteの数を指す.
初期値:-1、buffは存在しません.
#define _IOFBF 0x000
#define _IOREAD 0x001
#define _IOWRITE 0x002
#define _IONBF 0x004
#define _IOMYBUF 0x008
#define _IOEOF 0x010
#define _IOERR 0x020
#define _IOLBF 0x040
#define _IOREADING 0x080
#define _IOWRITING 0x100
#define _IOAPPEND 0x200
#define _IOFIFO 0x400
注記cygwin/usr/include/mingw/stdioを参照.h
#define _IOFBF 0x0000 /* full buffered */
#define _IOLBF 0x0040 /* line buffered */
#define _IONBF 0x0004 /* not buffered */
#define _IOMYBUF 0x0008 /* stdio malloc()'d buffer */
#define _IOEOF 0x0010 /* EOF reached on read */
#define _IOERR 0x0020 /* I/O error from system */
#define _IOSTRG 0x0040 /* Strange or no file descriptor */
_ptrの初期値はbuffアドレスであり、buff中のデータを操作するために用いる.
_countとは、buffにおける有効byteの数を指す.
初期値:-1、buffは存在しません.