FILE *fp;
FILE 是標準庫定義的**不透明結構體** (opaque type),具體成員由實作定義 (glibc/MSVC/UCRT 各不同)。
fp 是指向該結構體的指標,稱作**檔案串流指標** 或 **檔案控制塊指標**。
struct _IO_FILE {
int _flags; // 模式標誌: _IO_READ, _IO_WRITE, _IO_APPEND...
char *_IO_read_ptr; // 讀緩衝區當前指標
char *_IO_read_end; // 讀緩衝區結尾
char *_IO_read_base; // 讀緩衝區基址
char *_IO_write_base; // 寫緩衝區基址
char *_IO_write_ptr; // 寫緩衝區當前指標
char *_IO_write_end; // 寫緩衝區結尾
char *_IO_buf_base; // 緩衝區基址
char *_IO_buf_end; // 緩衝區結尾
int _fileno; // 檔案描述符 (Linux fd / Windows handle)
// ... 鎖、跳轉表、寬字元支援等
};
| 巨集 | 檔案描述符 | 用途 | 典型裝置 |
|---|---|---|---|
stdin | 0 | 標準輸入 | 鍵盤 |
stdout | 1 | 標準輸出 | 螢幕 |
stderr | 2 | 標準錯誤 | 螢幕 (無緩衝/行緩衝) |