open函数详解
open函数
函数原型:int open(const char*pathname,int flags);
        int open(const char*pathname,int flags,mode_t mode);
该函数有两个函数原型,其实是参数的数量问题。
1、int open(const char*pathname,int flags);
第⼀个参数是要打开的⽂件名,第⼆个参数是特殊常量,⽤于指定怎么打开⽂件。具体常量如下
参数:
O_RDONLY: 只读打开
O_WRONLY: 只写打开
O_RDWR: 读,写打开
这三个常量,必须制定⼀个且只能指定⼀个
O_CREAT: 若⽂件不存在,则创建它,需要使⽤mode选项。来指明新⽂件的访问权限
O_APPEND: 追加写,如果⽂件已经有内容,这次打开⽂件所写的数据附加到⽂件的末尾⽽不覆盖原来的内容
返回值:成功打开返回打开⽂件的⽂件描述符,是int类型,失败返回-1.
2、 int open(const char*pathname,int flags,mode_t mode);
库函数printf详解
前两个参数与上相同,第三个参数是设定该⽂件的权限,具体参数如下
S_IRUSR    : ⽂件所有者有读(r)权限
S_IWUSR  : ⽂件所有者有写(w)权限
S_IRGRP  : ⽂件所属组有读(r)权限
S_IWGRP  : ⽂件所属组有写(w)权限
S_IROTH  : ⽂件所属other有读(r)权限
S_IWOTH  : ⽂件所属other有写(w)权限
例⼦:
if((filefd = open(G_errfile, O_CREAT|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)) == -1) {
printf("++++++++++++++=open file fail\n");
return -1;
}