打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux内核

1.表头文件 #include<sys/types.h>
                  #include<sys/stat.h>
                  #include<fcntl.h> 


2.定义函数 int open( const char * pathname, int flags);
                   int open( const char * pathname,int flags, mode_t mode);

       对于 open 函数来说,第三个参数(...)仅当创建新文件时才使用,用于指定文件的访问权限。pathname 是待打开/创建文件的路径名;oflag 用于指定文件的打开/创建模式,这个参数可由以下常量(定义于 fcntl.h)通过逻辑或构成。

      O_RDONLY       只读模式
      O_WRONLY      只写模式
      O_RDWR          读写模式

以上三者是互斥的,即不可以同时使用。打开/创建文件时,至少得使用上述三个常量中的一个。以下常量是选用的:

      O_APPEND       每次写操作都写入文件的末尾
      O_CREAT        如果指定文件不存在,则创建这个文件
      O_EXCL         如果要创建的文件已存在,则返回 -1,并且修改 errno 的值
      O_TRUNC        如果文件存在,并且以只写/读写方式打开,则清空文件全部内容
      O_NOCTTY       如果路径名指向终端设备,不要把这个设备用作控制终端。
      O_NONBLOCK     如果路径名指向 FIFO/块文件/字符文件,则把文件的打开和后继 I/O设置为非阻塞模式(nonblocking mode)。

以下三个常量同样是选用的,它们用于同步输入输出

     O_DSYNC        等待物理 I/O 结束后再 write。在不影响读取新写入的数据的前提下,不等待文件属性更新。
     O_RSYNC        read 等待所有写入同一区域的写操作完成后再进行
     O_SYNC         等待物理 I/O 结束后再 write,包括更新文件属性的 I/O

 

3.返回值:成功则返回文件描述符,否则返回 -1。 

      返回文件描述符(整型变量0~255)。由open 返回的文件描述符一定是该进程尚未使用的最小描述符。只要有一个权限被禁止则返回-1。

 

4.错误代码:(均已E开头,将其去掉就是有关于错误的方面的单词或单词的缩写)

       EEXIST 参数pathname 所指的文件已存在,却使用了O_CREAT和O_EXCL旗标。
       EACCESS 参数pathname所指的文件不符合所要求测试的权限。
       EROFS 欲测试写入权限的文件存在于只读文件系统内。
       EFAULT 参数pathname指针超出可存取内存空间。
       EINVAL 参数mode 不正确。
       ENAMETOOLONG 参数pathname太长。
       ENOTDIR 参数pathname不是目录。
       ENOMEM 核心内存不足。
       ELOOP 参数pathname有过多符号连接问题。
       EIO I/O 存取错误。


 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Linux】open函数的参数和作用
linux文件设备与I/O:open/close函数
Linux(C/C++)下的文件操作open、fopen与freopen
struct stat结构体简介
Linux access函数功能描述: 检查调用进程是否可以对指定的文件执行某种操作
Linux下的C编程实战之文件系统编程 - 天极网
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服