1、位置
在命令行下输入 man 2 open
2、函数原型
int open(const char *pathname, int flags);
参数:
pathname:欲打开文件路径
flags:文件打开方式 (#include <fcntl.h>)
O_RDONLY, O_WRONLY, O_RDWRO_RDONLY|O_WRONLY|O_RDWR
O_CREAT|O_APPEND|O_TRUNC|O_EXCL|O_NONBLOCK ....
返回值:
成功。打开文件所得到的文件描述符(整数)
失败。-1.设置errono
int open(const char *pathname, int flags, mode_t mode);
参数:
pathname:欲打开文件路径
flags:文件打开方式 (#include <fcntl.h>)
O_RDONLY, O_WRONLY, O_RDWRO_RDONLY|O_WRONLY|O_RDWR
O_CREAT|O_APPEND|O_TRUNC|O_EXCL|O_NONBLOCK ....
mode:参数3使用的前提,参数2指定了O_CREAT,取8进制,用来描述文件的访问权限 rwx 0664。
创建文件最终权限 = mode & ~umask
返回值:
成功。打开文件所得到的文件描述符(整数)
失败。-1.设置errono
open常见错误:
1、打开文件不存在
以打开不存在文件为例:
执行该代码,结果如下
2 以写方式打开只读文件(权限问题)
3、以只写方式打开目录