开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

pselect

接口名称

pselect(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t *sigmask)

接口描述

一段指定时间内,侦听用户感兴趣的文件描述符的可读、可写和异常事件。同时,允许程序在调用pselect前禁止递交某些信号。

参数说明

参数说明备注
nfds集合中所有文件描述符的范围,即所有文件描述符的最大值加1最大值1024。
*readfds待监测读取操作的文件描述符集合支持为NULL。包含了需要检查是否可读的描述符,输出时表示哪些描述符可读。
*writefds待监测写入操作的文件描述符集合支持为NULL。包含了需要检查是否可写的描述符,输出时表示哪些描述符可写。
*exceptfds待监测异常条件的文件描述符集合支持为NULL。包含了需要检查是否出错的描述符,输出时表示哪些描述符出错。
*timeout一个时间结构体,用来设置超时时间仅支持到ms级别精度。为NULL时,为阻塞永久等待。
*sigmask调用期间应该被阻塞的信号集支持为NULL。

返回值

类型:int

  • 正数:就绪的文件描述符的个数,表示成功
  • 0:表示在达到超时之前,没有准备好的文件描述符
  • -1:表示失败,并设置errno以指示错误类型

错误码

错误码描述
EINTR被信号中断。
EINVAL入参timeout无效;入参nfds小于0或大于FD_SETSIZE。
ENOMEMmbuf内存申请失败。
ELIBBAD系统符号加载失败。
ENOMEM系统内存申请失败。