打开文件
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
参数说明:
pathname: 打开文件的路径
flags : 打开标志
mode : 只要使用 O_CREAT标志,就要使用这个参数,设置权限
返回值:
成功返回文件描述符
失败返回-1
int main()
{
umask(0); //设置掩码的值
int fd;
#if 0
1、以只读的方式打开文件,如果文件不存在,打开失败, 文件存在打开成功,文件指针指向文件开始的位置!
2、以只写的标志打开文件,如果文件不存在,打开失败, 文件存在打开成功, 默认不清空文件中的内容,文件指针指向开始位置
3、一般以写方式打开文件,会将 O_CREAT|O_WRONLY|O_TRUNC,一起使用, 表示的含义是:
如果文件不存在, 以第三个参数的权限创建文件,并且以写的方式打开文件
如果文件存在, 以写的方式打开文件,并且清空文件中所有的内容
4、默认情况下,新建文件的权限是 mode & (~umask), 如果不希望权限受到掩码的影响,可以直接将掩码设置为0
5、以追加的方式打开文件,如果文件不存在,打开失败, 文件存在打开成功,文件指针指向文件尾部
ps :追加的方式作写操作,仍然要或上 O_WRONLY
#endif
//fd = open("./data.txt", O_RDONLY);
//fd = open("./data.txt", O_WRONLY);
//fd = open("./data.txt", O_CREAT|O_WRONLY|O_TRUNC, 0777);
fd = open("./data.txt", O_CREAT|O_APPEND|O_WRONLY, 0777);
if(fd < 0)
{
perror("open");
return -1;
}
printf("fd : %d\n", fd);
return 0;
}
写文件
ssize_t write(int fd, const void *buf, size_t count);
参数说明:
fd : 文件描述符
buf: 写数据的起始地址
count : 数据的大小
返回值:
成功: