Linux中C语言open函数打开或创建文件详细讲解[文].pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Linux 中 C 语言 open 函数打开或创建文件详细讲解 open 函数是 Linux 中 C 语言中用于打开或创建文件的函数,函数原型为 `int open(const char *pathname, int flags);` 或 `int open(const char *pathname, int flags, mode_t mode);`。该函数可以以各种方式打开文件,并返回打开的文件句柄,-1 表示打开失败。 参数 pathname 指向欲打开的文件路径字符串,可以是相对路径也可以是绝对路径。 flags 参数是一系列常数值,可以同时选择多个常数用按位或运算符连接起来。这些常数的宏定义都以 O_ 开头,表示 or。下面是 flags 参数所能使用的旗标: 1. 必选项: * O_RDONLY:以只读方式打开文件 * O_WRONLY:以只写方式打开文件 * O_RDWR:以可读写方式打开文件 这些旗标是互斥的,也就是不可同时使用,但可与下列的旗标利用 OR(|) 运算符组合。 2. 可选项: * O_CREAT:若欲打开的文件不存在则自动建立该文件 * O_EXCL:如果 O_CREAT 也被设置, 此指令会去检查文件是否存在。文件若不存在则建立该文件,否则将导致打开文件错误 * O_NOCTTY:如果欲打开的文件为终端机设备时,则不会将该终端机当成进程控制终端机 * O_TRUNC:若文件存在并且以可写的方式打开时,此旗标会令文件长度清为 0,而原来存于该文件的资料也会消失 * O_APPEND:当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面 * O_NONBLOCK:以不可阻断的方式打开文件,也就是无论有无数据读取或等待,都会立即返回进程之中 * O_NDELAY:同 O_NONBLOCK * O_SYNC:以同步的方式打开文件 * O_NOFOLLOW:如果参数 pathname 所指的文件为一符号连接,则会令打开文件失败 * O_DIRECTORY:如果参数 pathname 所指的文件并非为一目录,则会令打开文件失败 第三个参数 mode 指定文件权限,可以用八进制数表示,也可以用 S_IRUSR、S_IWUSR 等宏定义按位或起来表示。mode 参数只有在建立新文件时才会生效,文件权限由 open 的 mode 参数和当前进程的 umask 掩码共同决定,因此该文件权限应该为(mode-umaks)。 返回值: 如果所有欲核查的权限都通过了检查则返回 0 值,表示成功,只要有一个权限被禁止则返回 -1。 错误代码: * EEXIST:参数 pathname 所指的文件已存在,却使用了 O_CREAT 和 O_EXCL 旗标 * EACCESS:参数 pathname 所指的文件不符合所要求测试的权限 * EROFS:欲测试写入权限的文件存在于只读文件系统内 * EFAULT:参数 pathname 指针超出可存取内存空间 * EINVAL:参数 mode 不正确 * ENAMETOOLONG:参数 pathname 太长 * ENOTDIR:参数 pathname 不是目录 * ENOMEM:核心内存不足 * ELOOP:参数 pathname 有过多符号连接问题 * EIO:I/O 存取错误
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
- (源码)基于C语言的操作系统实验项目.zip
- (源码)基于C++的分布式设备配置文件管理系统.zip
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip