0901文件指令

文件操作函数的意义

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:向文件写入数据

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值