引出int open(constchar*pathname,intflags,mode_t mode)系统调用函数,通过open函数打开和操作文件
第一个参数 pathname 是文件的路径名,第二个参数为打开文件方式,第三个参数为文件的权限
函数的返回值是文件描述符数组的下标←(点击直接跳转到详解)。
这里第二个参数种打开文件的方式
必选参数
必选参数 | 功能 |
---|---|
O_RDONLY | 只读方式打开 |
O_WRONLY | 只写方式打开 |
O_RDWR | 读写方式打开 |
必选参数
可选参数 | 功能 |
---|---|
O_CREAT | 文件不存在时则创建 |
O_APPEND | 追加方式打开 |
O_TRUNC | 以截断方式打开 |
打开文件方式可以用 或"|"的方式构成多种条件
如:O_WRONLY | O_CREAT 可以读方式打开文件,并且在文件不存在时创建
第三个参数为文件权限,文件权限时以二进制方式表示的文件读写权限,不多介绍
1 #include <stdio.h>
2 #include <fcntl.h>
3
4 int main()
5 {
6 int fd = open("temp.txt",O_RDWR|O_CREAT);
7 if(fd<0)
8 {
9 perror("open");
10 return 0;
11 }
12 printf("fd=[%d]\n",fd);
13 return 0;
14 }
输出 fd=[3]
这里能看出当前打开的文件标识符下标为 3.
通过查看当前pid查看当前文件描述符的信息,我们可以看到,前三位,已经被标准输入(stdin),标准输出(stdout),标准错误(stderror)占用。而我们打开的temp.txt
在数组下标为3 的位置。