我有以下要求;
1)选择与stdin相关的文件描述符上的块
2)现在我如何编写一个代码,以便select取消阻止。代码应该使stdin文件描述符准备就绪。换句话说,代码应该使select unblock而不等待用户提供输入
答案 0 :(得分:1)
如果我们正在谈论select
UNIX系统调用,并且您正在使用它来等待stdin
上的数据,则可以使用timeout参数来指示您最多要阻止的选择超时秒。
#include <sys/select.h>
int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout);
超时是select()之前经过的时间量的上限 回报。它可能为零,导致select()立即返回。 (这个 对于轮询非常有用。)如果timeout为NULL(无超时),则select()可以 无限期地阻止。
所涉及的时间结构定义如下
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};