UNIX网络编程卷一:第十四章 高级I/O

高级I/O

可设置超时时间

read和write的三个变体:

   1) recv  send  : 通过第四个参数从进程到内核传递标志

   2) readv  writev : 允许指定往其中输入数据或从其中输出数据的缓冲区向量.

   3) recvmsg  sendmsg: 结合了其他I/O函数的所有特性,并具备接收和发送辅助数据的新能力.


套接字超时

在套接字I/O上设置超时有3种方法:

1) 调用alarm (信号处理)

     它在指定超时期满时产生SIGALRM信号.

     相应的函数,如 connect, recvfrom 会被终端, 并设置errno=EINTR

2) 使用select (有设置时限功能)

3) 使用较新的套接字选项: SO_RCVTIMEO  SO_SNDTIMEO.  但是并非所有时限都支持.

     超时发生时, errno=EWOULDBLOCK


recv  send

比read write多一个参数flag.


readv writev

允许单个系统调用读入到或写出自一个或多个缓冲区.成为 分散读和集中写. (没理解)


recvmsg  sendmsg

最通用的I/O函数.  read readv recv  recvfrom 都可以替换成recvmsg.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值