open()
函数说明 | 用于创建或打开文件,可以指定文件打开方式及文件访问权限。 |
头文件 | #include <sys/types.h> |
函数原型 | int open(const char *pathname, int flags, mode_t mode); |
参数 | pathname:被打开的文件名(包括路径名) |
flags:参数可以通过 “|”组合构成 O_RDONLY:只读方式打开 以上三者互斥 O_CREAT 如果不存在就创建新的,并设置mode权限(不是O_CREATE) | |
mode:新建文件的存取权限 可以用宏定义:S_I (R/W/X) (USR/GRP/OTH) R/W/X:读/写/执行 USR/GRP/OTH:所有者/所属主/其他用户 也可用八进制表示权限:0666(与umask组合) | |
返回值 | 成功:返回一个新的文件描述符并且是最小的未用的描述符数字。 |
失败:-1 并设置errnos 错误代码: | |
备注: | 无法建立特别的设备文件, 如果需要请使用mknod(). |
close()
函数说明 | 关闭open打开的文件 |
头文件 | #include<unistd.h> |
函数原型 | int close(int fd); |
参数 | fd:文件描述符 |
函数返回值 | 成功:0 |
失败:-1 并设置erron 错误代码:EBADF 参数fd 非有效的文件描述词或该文件已关闭. |
例:
#include <fcntl.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> int main(int argc,char **argv) { int fd; if((fd = open("test.txt",O_RDWR|O_CREAT|O_TRUNC,0666)<0) { perror("fail to open"); exit(1); } close(fd); returne 0; }