Tag: 文件描述符时间

如果用户输入内容,则在语句之间切换:无限且超时

为了更清楚地解释我想要做什么,我希望我的代码检查用户是否输入了一些东西(或者如果另一个文件描述符超过0有数据要读取)每个(比方说)2.5秒,直到程序停止。 如果用户输入内容,则简单的printf()将通知他,然后程序将再次检查用户是否在接下来的2.5秒内输入了内容。 否则,它应该只是打印时间用完,然后在接下来的2.5秒内再次检查用户输入。 这是我从Beej的网络编程指南中窃取的代码片段,并修改为(尝试)满足我的要求: #include #include #include #include #define STDIN 0 // file descriptor for standard input int main(void){ struct timeval tv; fd_set readfds; FD_ZERO(&readfds); FD_SET(STDIN, &readfds); tv.tv_sec = 2; tv.tv_usec = 500000; while(1){ select(STDIN+1, &readfds, NULL, NULL, &tv); if (FD_ISSET(STDIN, &readfds)){ printf(“A key was pressed!\n”); tv.tv_sec = 2; tv.tv_usec = 500000; }else{ printf(“Timed out.\n”); […]