Linux下读写函数

本文详细介绍了Linux系统中进行文件操作的四个关键函数:open()用于打开或创建文件,close()用于关闭文件,read()用于从文件中读取内容,write()用于向文件写入内容。每个函数的功能、参数、返回值及使用场景进行了详尽阐述,包括各种标志位的组合使用,以及如何通过read()和write()实现数据的传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整理归纳Linux下用到的四个读写相关的函数:open() write() read() close()

1.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,mode_t mode)

pathname: 打开的文件的文件名(可包含路径)

flags: 打开文件的方式

O_RDONLY: 只读方式;O_WRONLY: 只写;O_RDWR:读写

O_CREAT:如果文件不存在,就创建一个新文件,并且用mode设置权限

O_APPEND;打开文件后定位到文件的末尾

O_EXCL:如果要创建的文件已存在,返回-1,修改errno的值

O_TRUNC:如果文件已存在,删除文件中的全部原有数据,并且设置文件大小为0

......

flags参数可以通过“|”组合构成

mode:打开文件的存取权限设置

返回值:

成功:返回文件描述符;失败:返回-1

2,close()函数

功能:关闭一个被打开的文件

所需头文件:

 #include <unistd.h>
函数原型:

int close(int fd)
fd为需要关闭的文件的描述符

返回值:

成功,返回0;失败,返回-1

3.read()函数

功能:从文件中读取内容

所需头文件:

 #include <unistd.h>

函数原型:

ssize_t read(int fd,void *buf,size_t nbyte) 

fd 为要读取的文件的文件描述符

buf 用于存放读取内容的缓冲区

nbyte 所需要读取的字节数

返回值:

读取成功时,返回实际读取的字节数

读到文件结尾,返回 0

出现错误,返回小于0的数,同时修改errno的值,根据errno的值确定错误类型


4.write()函数

所需头文件:

 #include <unistd.h>

函数原型:

ssize_t write(int fd,const void *buf,size_t nbytes) 
fd 为所要写的文件的描述副

buf 为要写入文件的缓冲区的内容

nbytes 要写入的字节数

返回值:

未出错时,返回实际写入的字节数(大于0)

出错时,返回值小于等于0,同时修改errno的值,根据errno的值确定错误类型


5.利用write()函数和read()函数实现数据的传递

/*客户端向服务器进行写*/

struct my_struct my_struct_client;
 write(fd,(void *)&my_struct_client,sizeof(struct my_struct); 

/*服务端进行读*/

char buffer[sizeof(struct my_struct)];
 struct *my_struct_server;
 read(fd,(void *)buffer,sizeof(struct my_struct)); 
 my_struct_server=(struct my_struct *)buffer;


参考文章:http://blog.chinaunix.net/uid-548179-id-2385382.html





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值