继上一篇环境配置后就正式开始系统编程
RK3568开发板入门之-tftp&nfs的配置
open的使用,使用之前可以先在Ubuntu下查看帮助,了解open的使用和语法,如下:
man 2 open
对于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函数比较简单
fd:open打开成功后返回的文件描述符。
return:0:关闭成功。-1:关闭失败。
例子:
Ubuntu下编译运行结果:
编译到开发板运行
*纠错:上面的例子需要改成这 int main (int argv, char argc[]),入口参数的第二个参数错了。
刚刚入门开始学习,如有不合理的地方还望指出。