第三章-文件I/O

这篇博客详细介绍了UNIX系统编程中的文件I/O操作,包括open、creat、close、lseek、read、write等函数的使用,以及I/O效率、文件共享、原子操作、dup和dup2函数、sync、fsync、fdatasync的功能和fcntl与ioctl在文件控制中的作用。还提到了/dev/fd的相关内容。
摘要由CSDN通过智能技术生成

一、相关函数

1.open
#include <fcntl.h>
int open(const char* path, int oflag, .../mode_t mode/);
//成功返回文件描述符,失败返回-1

path参数为要打开或创建文件的名字,oflag用下面一个或多个常量“或”运算(只列出常用):

  • O_RDONLY:只读打开
  • O_WRONLY:只写打开
  • O_RDWR:读写打开
  • O_EXEC:只执行打开
  • O_SEARCH:只搜索打开(应用与目录)
    以上五个必须指定一个,且只能指定一个。以下常量是可选的
  • O_APPEND:追加写
  • O_CLOEXEC:把FD_CLOEXEC常量设置成文件描述符标志
  • O_CREAT:若此文件不存在则创建。使用此选项时,同时需要说明第三个参数mode,用该mode指定该文件的访问权限位
  • O_NONBLOCK:非阻塞
  • O_TRUNC:若此文件存在,且为写或读写成功打开,则将其长度截断为0
  • O_SYNC:使每次write等待物理I/O操作完成,包括由该write操作引起的文件属性更新所需的I/O
  • O_DSYNC:使每次write等待物理I/O操作完成,但若该写操作并不影响读取刚写入的数据,则无需等待文件属性被更新
  • O_RSYNC:使每一个以文件描述符作为参数进行的read操作等待,直至所有对文件同一部分挂起的写操作都完成

由open函数返回的描述符一定是最小的未用描述符值。这一点被某些应用程序用来在标准输入、标准输出或标准错误上打开新的文件。

2. creat

创建新文件:

#inlcude <fcntl.h>
int creat(const char* path, mode_t mode);
//返回为(只写打开的)文件描述符,若出错返回-1
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值