前回介紹了系統級的文件描述符(int fd)。本回進入標準庫層面:文件流與文件指針。
FILE*stdin、stdout、stderr,對應文件描述符0、1、2。FOPEN_MAX限制(通常≥16,Linux默認256)。| 特性 | 文件描述符 | 文件指針 |
|---|---|---|
| 提供者 | 操作系統內核 | C標準庫 |
| 類型 | 非負整數 | FILE* 不透明指針 |
| API風格 | open/read/write/close | fopen/fread/fwrite/fclose |
| 緩衝 | 無(直接系統調用) | 用戶態緩衝(塊/行/無緩衝) |
| 可移植性 | POSIX系統 | ANSI C標準,跨平台 |
兩者本質相通:FILE*內部持有fd。掌握一種,另一種易於類比。
詳細講解fopen、fread、fwrite、fclose等核心函數原型與參數,並給出完整示例代碼。