功能: 确定文件的访问权限
用法: int access(const char *filename, int amode);
finename 文件名称mode 模式,共5种模式:
0-检查文件是否存在
1-检查文件是否可运行
2-检查文件是否可写访问
4-检查文件是否可读访问
6-检查文件是否可读/写访问
例:判断文件是否存在
int file_exists(char *filename){
return (access(filename, 0) == 0);
}
2)创建文件
int creat(char *pathname,mode_t mode);
pathname:要创建文件的路径文件名。可以使用绝对路径或相对路径。
mode: 新建文件的访问权限,同创建目录
使用时,可用或运算组合使用,如
S_IRUSR | SIWUSR
写可以使用数字,如
666
返回值:成功,返回文件描述符,失败-1
说明:
3)打开文件
int open(const char *pathname, int oflag,mode_t mode);
pathname: 设备或文件名
flags: 文件的打开方式,可以用位运算|组合
O_RDONL Y 只读
O_WRONL Y 只写
O_RDWR 读写模式
O_APPEND 追加模式
O_CREAT 创建文件
O_SYNC 同步。
O_NONBLOCK 非阻塞模式,默认为阻塞模式
O_EXCL 如果定义了O_CREAT,且文件已存在,则出错
O_TRUNC 如果文件存在,且以只读或指写方式打开,则截断文件mode: 可选参数,用于定义新建文件的访问权限,同creat函数
返回值:成功文件描述符失败-1
注:O_RDONL Y、O_WRONL Y、O_RDWR中只能选择一个,然后通过|运算和其它选项组合
O_EXCL与O_CREAT组合实现互斥,文件已存在的情况下,调用失败。
O_WRONL Y|O_CREAT|O_TRUNC组合,则与creat函数等价