Linux系统入门之-系统编程【open、close函数】

继上一篇环境配置后就正式开始系统编程

RK3568开发板入门之-tftp&nfs的配置

open的使用,使用之前可以先在Ubuntu下查看帮助,了解open的使用和语法,如下:

man 2 open

Linux系统入门之-系统编程【open、close函数】_第1张图片

对于open函数
*pathname:要打开的文件路径
flags:打开的方式 【
					O_RDONLY: 只读模式
					O_WRONLY: 只写模式
					O_RDWR : 读写模式
					O_NONBLOCK: 非阻塞模式
					O_APPEND: 追加模式
					O_CREAT: 创建并打开一个新文件
					O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
					O_EXCL: 如果指定的文件存在,返回错误
					】
mode:新建时候赋予文件的权限【rwx权限,这值和chmod修改文件类似的值r-4、w-2、x-1】

只有用到O_CREAT才需要用mode。

注意:mode最终赋予文件的权限需要和Ubuntu的umask有关。
终端输入 umask
在这里插入图片描述
所以最终的值:mode &= ~0002即mode &= 0775
例如:赋予文件0777的权限,实际文件的权限是775
在这里插入图片描述
在这里插入图片描述

在Linux中,进程是通过文件描述符 (file descriptors 简称fd)来访问文件的,文件描述符实际上是一个整数。

open的返回值 -1:打开失败,3-1023:打开成功的文件描述符。0 (代表标准输入),1 (代表标准输出),2 (代表标准错误)

对于close函数,这个就和内存操作一样申请内存后不用了就一定要释放。

close函数比较简单
Linux系统入门之-系统编程【open、close函数】_第2张图片
fd:open打开成功后返回的文件描述符。
return:0:关闭成功。-1:关闭失败。

例子:
Linux系统入门之-系统编程【open、close函数】_第3张图片
Ubuntu下编译运行结果:
在这里插入图片描述
编译到开发板运行
在这里插入图片描述
Linux系统入门之-系统编程【open、close函数】_第4张图片

*纠错:上面的例子需要改成这 int main (int argv, char argc[]),入口参数的第二个参数错了。
刚刚入门开始学习,如有不合理的地方还望指出。

你可能感兴趣的:(linux,运维,ubuntu,buildroot,RK3568)