| open() | 打开或创建文件 | <fcntl.h> | int open(const char *pathname, int flags, mode_t mode); | 文件描述符 (成功)/-1(失败) |
| creat() | 创建新文件 | <fcntl.h> | int creat(const char *pathname, mode_t mode); | 文件描述符 (成功)/-1(失败) |
| close() | 关闭文件描述符 | <unistd.h> | int close(int fd); | 0(成功)/-1(失败) |
| read() | 从文件描述符读取数据 | <unistd.h> | ssize_t read(int fd, void *buf, size_t count); | 读取字节数/-1(失败) |
| write() | 向文件描述符写入数据 | <unistd.h> | ssize_t write(int fd, const void *buf, size_t count); | 写入字节数/-1(失败) |
| lseek() | 移动文件读写指针 | <unistd.h> | off_t lseek(int fd, off_t offset, int whence); | 新偏移量/-1(失败) |
| pread() | 从指定偏移处读取 | <unistd.h> | ssize_t pread(int fd, void *buf, size_t count, off_t offset); | 读取字节数/-1(失败) |
| pwrite() | 向指定偏移处写入 | <unistd.h> | ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); | 写入字节数/-1(失败) |
| fsync() | 将文件数据同步到磁盘 | <unistd.h> | int fsync(int fd); | 0(成功)/-1(失败) |
| fdatasync() | 同步文件数据(不包括元数据) | <unistd.h> | int fdatasync(int fd); | 0(成功)/-1(失败) |
| ftruncate() | 截断/扩展文件大小 | <unistd.h> | int ftruncate(int fd, off_t length); | 0(成功)/-1(失败) |
| dup() | 复制文件描述符 | <unistd.h> | int dup(int oldfd); | 新文件描述符/-1(失败) |
| dup2() | 复制文件描述符到指定值 | <unistd.h> | int dup2(int oldfd, int newfd); | 新文件描述符/-1(失败) |
| fcntl() | 文件描述符控制操作 | <fcntl.h> | int fcntl(int fd, int cmd, ... /* arg */); | 依赖 cmd/-1(失败) |
| ioctl() | 设备 I/O 控制 | <sys/ioctl.h> | int ioctl(int fd, unsigned long request, ...); | 依赖 request/-1(失败) |
| mmap() | 内存映射文件 | <sys/mman.h> | void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); | 映射地址/MAP_FAILED |
| munmap() | 解除内存映射 | <sys/mman.h> | int munmap(void *addr, size_t length); | 0(成功)/-1(失败) |
| mprotect() | 修改内存保护属性 | <sys/mman.h> | int mprotect(void *addr, size_t len, int prot); | 0(成功)/-1(失败) |
| msync() | 同步内存映射到文件 | <sys/mman.h> | int msync(void *addr, size_t length, int flags); | 0(成功)/-1(失败) |
| stat() | 获取文件状态信息 | <sys/stat.h> | int stat(const char *pathname, struct stat *statbuf); | 0(成功)/-1(失败) |
| fstat() | 通过 fd 获取文件状态 | <sys/stat.h> | int fstat(int fd, struct stat *statbuf); | 0(成功)/-1(失败) |
| lstat() | 获取符号链接状态 | <sys/stat.h> | int lstat(const char *pathname, struct stat *statbuf); | 0(成功)/-1(失败) |
| access() | 检查文件访问权限 | <unistd.h> | int access(const char *pathname, int mode); | 0(成功)/-1(失败) |
| chmod() | 修改文件权限 | <sys/stat.h> | int chmod(const char *pathname, mode_t mode); | 0(成功)/-1(失败) |
| fchmod() | 通过 fd 修改文件权限 | <sys/stat.h> | int fchmod(int fd, mode_t mode); | 0(成功)/-1(失败) |
| chown() | 修改文件所有者 | <unistd.h> | int chown(const char *pathname, uid_t owner, gid_t group); | 0(成功)/-1(失败) |
| fchown() | 通过 fd 修改文件所有者 | <unistd.h> | int fchown(int fd, uid_t owner, gid_t group); | 0(成功)/-1(失败) |
| readlink() | 读取符号链接目标 | <unistd.h> | ssize_t readlink(const char *pathname, char *buf, size_t bufsiz); | 读取字节数/-1(失败) |
| rename() | 重命名/移动文件 | <stdio.h> | int rename(const char *oldpath, const char *newpath); | 0(成功)/-1(失败) |
| mkdir() | 创建目录 | <sys/stat.h> | int mkdir(const char *pathname, mode_t mode); | 0(成功)/-1(失败) |
| rmdir() | 删除空目录 | <unistd.h> | int rmdir(const char *pathname); | 0(成功)/-1(失败) |