【C语言】【unix c】文件的打开与文件的关闭(系统调用函数)

xiaoxiao2021-02-28  72

文件的打开与文件的关闭(系统调用函数) 标准c中: fopen(3), fclose(3) 系统调用:open(2),close(2) open(2): #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags, ...); 功能:打开一个文件,有可能创建一个文件 参数: pathname:指定要打开文件的名字 flags:(31) O_RDONLY, 只读 O_WRONLY, 只写 O_RDWR.可读可写 另外可以按位或0个或多个创建标记和状态标记 O_CREAT:如果文件不存在则创建文件,有这个标记时需要有第3个参数,第三个参数mode指定了新文件的权限。新文件的权限是(mode & ~umask) O_EXCL:如果和o_creat在flags中被一起指定,文件存在,报错 O_NOCTTY。 O_TRUNC:打开的文件存在,并且是一个普通文件,有写的权限,那么文件清空 O_APPEND:追加模式打开文件,文件的读写位置被定位在文件的末尾 ...:可变参数,可变参数的类型和个数取决于可变参数前面的那个参数 返回值:返回一个新的文件描述符 close(2): #include <unistd.h> int close(int fd); 功能:关闭一个文件描述符 参数:fd:指定要关闭的文件描述符 返回值: -1: 错误 errno被设置 0: 成功 步骤: 1、定义文件标识符变量 2、打开文件(打开方式,权限问题) 3、判断文件是否打开 4、关闭文件 5、在关闭文件前填写操作 举例: 以读写的方式,文件不存在,创建文件,权限为0644,文件存在,报错,文件已存在(rw_file.c) 程序: #include <stdio.h> #include <p_file.h> int main(int argc, char *argv[]) { int fd; //打开文件,以读写方式 int flags = O_RDWR | O_CREAT | O_EXCL;// 为了缩短长度 fd = open(argv[1], flags, 0644);//0是8进制标志,rw—r--r-- if(fd == -1) { perror("open"); return -1; } printf("file open success"); close(fd); return 0; }
转载请注明原文地址: https://www.6miu.com/read-59125.html

最新回复(0)