select(2) 系统调用在 Stevens、Fenner 和 Rudoff 的 Unix Network Programming (2003) 第 6.3 章中定义如下:
#include <sys/select.h>
#include <sys/time.h>
int select(int maxfdp1, fd_set *readset, fd_set *writeset,
fd_set *exceptset, const struct timeval *timeout);
但是现代的 Unix,如 FreeBSD、OpenBSD、NetBSD、Linux,甚至 POSIX[1] 标准,都没有这样定义系统调用。但是,书中指出“POSIX 指定了 const 限定符”。难道是书上的错误?还是因为历史原因?但是,所有系统都将 pselect(2) 定义为具有恒定的超时参数。
http://pubs.opengroup.org/onlinepubs/009695399/functions/pselect.html
本书勘误表页面并未将此列为错误: