
文件操作函数的意义
linux无论硬软体都被视为文件,系统为此设置接口对文件的访问进行控制,统称为系统调用。系统调用为应用程序设置访问文件的抽象接口,无视文件类型,也无视编码
事前准备-头文件
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
三个头文件包含了有关系统调用的各种函数函数,包括但不限于open,close,errno,read,write,更多细节可以通过输入"man 2 open"查询
函数
open打开文件
open函数用于打开已有的文件或创建新文件,返回一个非负描述符
open("文件名",打开方式(flag参数))
例:
int fd;
fd=open("1.txt",O_RDONLY);
printf("开启描述符为%d\n",fd);
O_RDONLY(只读模式)是flag参数的其中一项,表示文件的打开模式。flag参数还有O_WRONLY(只写模式),O_RDWR(读写)。
例中表示的是代码段以只读模式打开txt文件1,fd是一个整型,表示对文件的描述:
1.若文件不存在,返回-1,表示打开失败
2.若文件存在,分别返回一个整数,从小到大
3.发现第一个文件打开时,从3开始
4.0分配给标准输入,1分配给标准输出,2分配给标准错误
除此之外还可以搭配以下flag参数:O_CREAT(创建),O_APPEND(追加),其中创建参数需要追加umask参数,umask参数表示不同类型用户对文件的权限,是4位八进制数:
其他人权限
同组用户权限
文件拥有者权限
0 7 7 7
111 111 111
读取权限
写入权限
执行权限
追加后的格式:
fd=open("文件名",flag参数|O_CREAT,umask参数(四个八进制数));
close关闭文件
关闭已打开的文件,与open搭配使用
close(fd);
errno错误处理
通常的错误处理分为错误码和错误原因,错误码是指代出错原因的一串数字,错误原因则解释了具体细节。
打印错误码printf("%d",errno);
翻译成原因printf("%s",strerror(errno));
perror("open error");
读写函数
read:从打开文件中提取数据
ssize_t read(int fd,void *buf,size_t count);
成功返回读到的字节数;若读到队尾则返回0;读取失败返回-1
例:
int ret=read(fd,buf,COUNT)
fd为源文件,buf为目的,COUNT为字节数
write:向文件写入数据
2190

被折叠的 条评论
为什么被折叠?



