- 文件描述符的打开:
- 在Linux环境下使用C语言打开文件通常使用
open
系统调用函数。其原型为:int open(const char *pathname, int flags);
或者 int open(const char *pathname, int flags, mode_t mode);
- 例如,以只读方式打开一个文件:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main() {
int fd = open("test.txt", O_RDONLY);
if (fd == -1) {
perror("open");
return 1;
}
// 这里可以进行文件操作
close(fd);
return 0;
}
- 常见标志位及其作用:
- O_RDONLY:以只读方式打开文件。
- O_WRONLY:以只写方式打开文件。
- O_RDWR:以可读可写方式打开文件。
- O_CREAT:如果文件不存在则创建它。使用此标志时,需要在
open
函数的第三个参数指定文件的访问权限。
- O_TRUNC:如果文件存在且以写方式打开,则将其长度截断为0。
- O_APPEND:每次写操作都追加到文件的末尾。
- 文件描述符的关闭:
- 使用
close
系统调用函数关闭文件描述符。其原型为:int close(int fd);
- 例如上述代码中的
close(fd);
语句,它会关闭之前通过open
函数打开的文件描述符fd
,释放系统资源。如果关闭成功,close
函数返回0;否则返回 -1 并设置errno
以指示错误原因。