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.

UNIX网络编程卷一:第十四章 高级I/O_第1张图片

readv writev

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


recvmsg  sendmsg

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


UNIX网络编程卷一:第十四章 高级I/O_第2张图片


你可能感兴趣的:(UNIX网络编程卷一:第十四章 高级I/O)