一、系统
BSD:
1、kqueue() 接口。
2、SA_RESTART宏
3、getsockopt返回0并通过SO_ERROR返回error
4、ioctl的SIOCGIFCONF在buff < data返回0,成功读取truncate数据
Linux:
1、epoll 接口
2、SA_RESTART宏
solaris:
1、SA_INTERRUPT宏
2、/dev/poll接口
3、getsockopt返回-1并设置errno
4、ioctl的SIOCGIFCONF在buff < data返回EINVAL
二、内容
1、EINTR时,SA_RESTART宏与SA_INTERRUPT宏
2、SOCKET类型AF_LOCAL(UNIX)、AF_INET6宏
3、accept对于RST的反应,EWOULDBLOCK、ECONNABORTED、EPROTO、EINTR宏
4、事件驱动模型,/dev/poll、epoll、kqueue
5、nonblock connect的getsockopt,返回0并通过SO_ERROR返回error以及返回-1值errno
6、ioctl的SIOCGIFCONF&&buff < data,返回0成功读取截断数据、返回EINVAL。有些系统支持SIOCGIFNUM先取BUFFSIZE