| 函數 | 原型 | 核心語義 | 關鍵備註 |
open | int open(const char *path, int flags, mode_t mode) | 打開/創建文件,返回 fd | flags 必含 O_RDONLY/WO/RDWR;mode 僅 O_CREAT 時生效 |
close | int close(int fd) | 關閉 fd | |
read | ssize_t read(int fd, void *buf, size_t n) | 讀取 n 字節到 buf | 返回實際讀取字節數,0=EOF,-1=錯誤 |
write | ssize_t write(int fd, const void *buf, size_t n) | 寫入 n 字節 | 可能部分寫入,需循環 |
lseek | off_t lseek(int fd, off_t off, int whence) | 移動文件偏移量 | whence: SEEK_SET/CUR/END |
fsync | int fsync(int fd) | 強制刷新內核緩衝到磁盤 | 寫關鍵數據前必調用,防掉電丟失 |
mmap | void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off) | 文件映射到內存 | 先 fstat 取大小,再映射,操作內存即操作文件 |
munmap | int munmap(void *addr, size_t len) | 解除映射 | |
ftruncate | int ftruncate(int fd, off_t len) | 截斷/擴展文件長度 | mmap 前預設大小必調用 |
fstat | int fstat(int fd, struct stat *buf) | 獲取文件元信息 | 含 size、mtime、mode、inode 等 |
| 函數 | 原型 | 語義 | 備註 |
fopen | FILE *fopen(const char *path, const char *mode) | 打開流 | mode: r/r+/w/w+/a/a+ 等 |
fclose | int fclose(FILE *fp) | 關閉流並刷新 | |
fread | size_t fread(void *ptr, size_t sz, size_t n, FILE *fp) | 讀取 n 個 sz 字節塊 | 返回成功塊數 |
fwrite | size_t fwrite(const void *ptr, size_t sz, size_t n, FILE *fp) | 寫入 n 個 sz 字節塊 | |
fseek | int fseek(FILE *fp, long off, int whence) | 定位流位置 | 同 lseek |
ftell | long ftell(FILE *fp) | 獲取當前偏移 | |
rewind | void rewind(FILE *fp) | 定位到流頭 | 等價 fseek(fp,0,SEEK_SET) |
fprintf | int fprintf(FILE *fp, const char *fmt, ...) | 格式化寫入流 | 族函數:printf/sprintf/vprintf 等 |
fscanf | int fscanf(FILE *fp, const char *fmt, ...) | 格式化讀取流 | |
fgets | char *fgets(char *s, int size, FILE *fp) | 讀一行(含 \n) | 遇 \n/EOF 停止,保留 \n |
fputs | int fputs(const char *s, FILE *fp) | 寫字符串 | **不寫 \0** |
fflush | int fflush(FILE *fp) | 刷新輸出緩衝 | |
fileno | int fileno(FILE *fp) | 獲取底層 fd | 橋接 stdio 與系統調用 |
| 函數 | 原型 | 語義 |
remove | int remove(const char *path) | 刪除文件 |
rename | int rename(const char *old, const char *new) | 重命名/移動 |
chmod | int chmod(const char *path, mode_t mode) | 修改權限 |
stat | int stat(const char *path, struct stat *buf) | 獲取文件信息(不需打開) |
utime | int utime(const char *path, const struct utimbuf *times) | 修改訪問/修改時間 |
opendir | DIR *opendir(const char *name) | 打開目錄 |
readdir_r | int readdir_r(DIR *d, struct dirent *e, struct dirent **res) | 線程安全讀目錄項 |
closedir | int closedir(DIR *d) | 關閉目錄 |
getcwd | char *getcwd(char *buf, size_t size) | 獲取當前工作目錄 |
chdir | int chdir(const char *path) | 改變工作目錄 |