# linux文件系统
linux由虚拟文件系统VFS提供同一套API操作不同的文件类型。
//open()函数
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);
- 使用时需包含头文件sys/types.h、sys/stat.h、fcntl.h
- 成功返回文件描述符,失败返回-1
- pathname最大长度通常为1024,不同系统有差别,超长自动截断
- flags
- O_RDONLY 0 只读
- O_WRONLY 1 只写
- O_RDWR 2 可读可写
- O_APPEND 写操作时追加
- O_CREAT 不存在则创建,此时需设置mode参数以确定新文件权限
- O_TRUNC 将文件长度截断为0,若文件存在并成功打开,则文件长度截断为0
- O_NONBLOCK 以非阻塞方式打开文件,不指定是默认阻塞方式打开
- mode参数值与含义
|选项|值|含义|
|:----:|:----:|:----:|
|S_IRWXU|00700|用户(文件所有者)有读写和执行权限|
|S_IRUSR|00400|用户有读权限|
|S_IWUSR|00200|用户有写权限|
|S_IXUSR|00100|用户有执行权限|
|S_IRWXG|00070|组用户(文件所有者)有读写和执行权限|
|S_IRGRP|00040|组用户有读权限|
|S_IWGRP|00020|组用户有写权限|
|S_IXGRP|00010|组用户有执行权限|
|S_IRWXO|00007|其他用户(文件所有者)有读写和执行权限|
|S_IROTH|00004|其他用户有读权限|
|S_IWOTH|00002|其他用户有写权限|
|S_IXOTH|00001|其他用户有执行权限|
linux文件系统
原文:https://www.cnblogs.com/hztd/p/11453492.html