数据库大赛。边打边学
1. fcntl.h
全称file control,文件控制。
核心函数:
操作:通过命令。
int fcntl(int fd, int cmd, ... /* args */ );
主要参数:
- fd:文件描述符,句柄。
- cmd:操作命令。
打开
int open(const char *pathname, int flags, mode_t mode);
主要参数:
- pathname:文件路径。
- flags:打开文件的方式。通过位掩码组合。各种常量,比如O_RDONLY、O_WRONLY、O_RDWR等。可以用或运算组合。
- mode:文件的权限。也是掩码,
S_
开头。
关闭
int close(int fd);
主要参数:
- fd:文件描述符。
移动文件读写指针
int lseek(int fd, off_t offset, int whence);
主要参数:正数向后,负数往前。
- fd:文件描述符。
- offset:偏移量。按字节算。
- whence:基准位置,从哪里开始偏移。
SEEK_SET
、SEEK_CUR
(当前指针位置)、SEEK_END
。
删除文件
int unlink(const char *pathname);
主要参数:
- pathname:文件路径。
每个文件都有一个 硬链接计数(hard link count),表示有多少个目录项指向该文件。
unlink() 会减少该计数,当计数降为 0 且没有进程打开该文件时,文件内容才会被真正删除