open
头文件
使用open函数需要包含
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
函数原型
- 当文件存在时
int open(const char* pathname, int flags)
- 当文件不存在时
int open(const char* pathname, int flags, int perms)
返回值
- 成功:文件描述符
- 失败:-1
close
头文件
- #include <unistd.h>
函数原型
int close(int fd) //接收一个文件描述符
返回值
- 成功:0
- 失败:-1
应用
创建openclose.c文件
//包含open close函数需要的头文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
int main()
{
int fd; //定义文件描述符
/*
* 文件名
* 文件打开模式(主模式和副模式,可以翻看之前笔记)
* 文件权限(可省略)
*/
fd = open("./a.txt", O_RDONLY);//只读模式
if (fd < 0)
{
printf("open error!\nfd = %d\n", fd);
close(fd);
return 1;
}
printf("open succeed!\nfd = %d\n", fd);
close(fd);
return 0;
}
- 创建a.txt文件
再次运行:
原因:文件描述符0、1、2系统占用,表示标准输入、标准输出、标准出错。
主模式可以搭配副模式使用,比如当文件不存在时,可以或上第一种副模式,去创建这个文件,
fd = open("./a.txt", (O_RDONLY | O_CREATE), 0666);//只读模式
文件权限是8进制格式,0表示8进制。