(7)读写函数

前段疯狂ACMing。这事差点都忘记了。。。。。
两台机器要通信,肯定是交换东西啦。所以读写函数先介绍
ssize_t write(int sfd,const void *buf,size_t nbytes) 

write函数将buf中的nbytes字节内容写入描述符sfd. 
成功时返回写的字节数.失败时返回-1. 并设置errno变量. 

1)write的返回值大于0,表示写了部分或者是全部的数据. 
2)返回的值小于0,此时出现了错误.我们要根据错误类型来处理. 
如果错误为EINTR表示在写的时候出现了中断错误. 
如果为EPIPE表示网络连接出现了问题(对方已经关闭了连接). 

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

read函数是负责从fd中读取内容.当读成功时,read返回实际所读的字节数, 
如果返回的值是0 表示已经读到文件的结束了,小于0表示出现了错误. 
如果错误为EINTR说明读是由中断引起的, 如果是ECONNREST表示网络 
连接出了问题. 

其实大多数时候我们都是传递一个报文,一般我们会把一个结构memcpy到一个 
buffer中,然后将这个buffer str在网络上传递.
高级套接字函数 之recv和send 

int recv(int sockfd,void *buf,int len,int flags) 
int send(int sockfd,void *buf,int len,int flags) 

recv和send函数提供了和read和write差不多的功能.不过它们提供了第四个参数来控制 
读写操作. 

前面的三个参数和read,write一样,第四个参数可以是0或者一些组合。

notice:
如果有人看的是UNIX网络编程,注意readn那三个函数是stevens教主自己写的,在unp,h中,不要去调用,自己写可以。下次给个程序例子
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值