文章目录
一、相关函数
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
</