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);

前两个参数与上相同,第三个参数是设定该文件的权限,具体参数如下

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;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM