Linux开发——文件IO open、read、write、close函数的使

 2024-03-03 20:39:54  阅读 0

序言

怎么读取文件?文件操作跟把小象放进冰柜是一样的。打开文件、写入内容、关闭文件。文件操作可以用linux提供的open、read、write、close等函数。因而实现文件复制的流程就是:打开文件–>读取源文件内容–>将内容写入目的文件–>关掉文件。

open()函数

open()函数拿来打开一个文件,返回一个文件描述符。linux下一切皆文件,默认打开标准输入、标准输出、错误输出,分别对应文件描述符0、1、2。当打开一个文件时,文件描述符编号依次从小到大,也就是从3开始(0、1、2没有关掉的情况下)。

open()函数参数说明::文件的路径名,flags:打开方法(只读、读写等)

mode(可选参数):给文件赋于相应权限,如0644,也可以用宏,具体参考指南(linux输入:man2open)。

creat()函数用于创建文件,通常不用。由于可以用open()函数在flags参数中加上CREAT,表示若文件不存在则创建。多个选项相或实现。

read()函数

同样,我们来瞧瞧linux指南中的函数原型。read()从文件描述符fd中读取count字节的数据并装入从buf开始的缓冲区中.

fd:文件描述符

buf:内容缓冲。通常定义一个缓冲链表储存读取的内容,将字段名带入参数。

count:要读取内容的大小。用链表储存内容时,通常来说count就是链表的大小

返回值:返回实际读取到的字节数,0表示读完

write()函数

write向文件描述符fd所引用的文件中写入从buf开始的缓冲区中count字节的数据.

write()和read()操作是差不多的,基类都是相同的,函数名不同而已。

fd:文件描述符

buf:要写入的内容

count:要写入内容的大小

返回值:返回实际写入的大小

close()函数

close()就很简单了,功能是关掉一个文件,将文件描述符传递进去,之后调用。

返回值:0表示成功-1表示出错

文件复制

打开文件–>读取源文件内容–>将内容写入目的文件–>关掉文件

#include 
#include 
#include 
#define bufsize 1024
int main(){
//打开文件
int src = open("./test",O_RDONLY);//以只读形式打开test文件,返回一个文件描述符
int dest = open("./copy_test",O_RDWR|O_CREAT,0644);//读写方式打开,644是权限
//读取test内容,写入copy_test
char buf[bufsize];//定义字符缓冲数组,用于存放读取到的文件内容
int read_size,write_size = 0;
while((read_size = read(src,buf,bufsize))!= 0)//返回0说明读取完毕
{
write_size += write(dest,buf,read_size);
}
printf("写入文件内容大小为:%d\n",write_size);
//关闭文件
close(src);
close(dest);
return 0;
}

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码