红联Linux门户
Linux帮助

Linux下读写函数

发布时间:2016-03-27 11:01:38来源:linux网站作者:ljh0302

整理归纳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()函数

所需头文件:

函数原型:

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://www.linuxdiyf.com/linux/19299.html