文件的打开及创建
C语言打开及创建文件需要用到open()函数,open函数在三个头文件当中:
在这里插入图片描述

open函数
函数原型:
在这里插入图片描述

open函数的返回值是一个小的 非负整数,这个整数是被open打开的文件描述符。这个描述符在之后的操作中(比如写入,读取等操作)起到一个索引的作用,当描述的值等于 -1 的时候,证明打开文件失败。

Open函数的三个参数,pathname、flags、mode
pthname:这个参数是想要开打的文件名(包含路径,缺省为当前路径);
flags :打开文件的方式及权限,它一般有三个值:
O_RDONLY:只可读方式打开
O_WRONLY:只可写方式打开
O_RDWR:可读可写方式打开
当使用这三种的其中一种打开文件时,就会赋予其相应权限,之后的 read() 及write() 都只能是打开文件时的权限。
除此之外,还有四个值:
O_CREAT:若文件不存在,用这个值可以创建文件;若文件存在,用其会出错;
O_EXCL:如果同时指定了O_CREAT,使用其项时,需要说明mode;
O_APPEDN:每次写入时,都加到文件的末端;
O_TRUAC:属性去打开文件时,如果这个文件本来就有内容的,会被缩减长度为0
open函数的用法:
在这里插入图片描述

这样就能打开file文件了。当file文件不存在时,使用或运算和O_RDWR打开,即:
在这里插入图片描述

这样就可以创建文件file了。

第三个参数 mode:
这个参数是待创建文件的权限。Linux中的权限描述有:r —可读;w —可写;
x —可执行。比如:
在这里插入图片描述

可以看到file 前面的 “rw”代表可读可写,因为我在创建file时,mode参数给的是 0600即:
在这里插入图片描述

这0600怎么来的呢?Linux中,r 权限的值为4,w的值为2,x的值为1
所以6=4+2;而6后面的两个0,第一个为同组下的权限,最后一个0为其他组下的权限。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐