-----今天晚上醍醐灌顶,听了一些大神前辈的指导,受益匪浅。哈哈,还是写文章吧,明天还是要搬砖呢。今天分享的是linux环境下open函数的解析,其实在前面的文章里面我只是简单的用了一下open函数的用法(因为自己也是刚开始在学习linux,不是很懂,大神勿喷,还请多指出不足之处),当然它还有好多用法和需要注意的地方。说到这里我又想起了man手册,哈哈,因为它可以在linux环境下查看命令和api以及库函数的具体用法,实在是太强悍了。只是注解是英文的(当然也可以安装系统的时候搞成中文的,但是中文有的时候翻译的不准确,有些词语不好理解,往往英文会更好理解,前提是要一定的英文水平,不然会很难静下心来看完),就如下面,我用 man 2 open 来查看:
全是英文,哈哈,其实不要怕,我挑重点来讲,下面来看分析:一、文件的权限:
1 int open(const char *pathname, int flags);
2 int open(const char *pathname, int flags, mode_t mode);
3 The argument flags must include one of the following access modes:
4 O_RDONLY, O_WRONLY, or O_RDWR. These request opening the file read-
5 only, write-only, or read/write, respectively.
上面是原注释,我们可以看到:open函数里面的参数flag是表示文件打开是什么方式来打开的(也就是说权限,打开文件的时候,权限设置是只读权限,后面你再对文件写操作的话,系统是不允许这样做的),这里我们可以看到在打开文件的时候,有三种权限设置:
1)O_RDONLY:表示只读,也就是文件只能读,不能写入
2)O_RDWR:表示既可以读又可以写
3)O_WRONLY:表示只能写操作,不能进行读操作
注:这里操作比较简单,我就没有用代码来举例子了。二、O_APPEND和O_TRUNC的使用:
1、老样子,我们还是先看原注释是怎么注释的: