p10-8.c

来自「SUN Solaris8平台下进程间通信」· C语言 代码 · 共 34 行

C
34
字号
#include <stdio.h>#include <unistd.h>#include <sys/time.h>#include <errno.h>int input_timeout(int filedes, unsigned int seconds){    fd_set set;    struct timeval timeout;    int n;    char buf[1024];    FD_ZERO(&set);             /* 初始文件描述字集合 */    FD_SET(filedes, &set);    timeout.tv_sec = seconds;  /* 初始timeout数据结构 */    timeout.tv_usec = 0;    /* select时间到期返回0;输入就绪返回1;出现错误返回-1 */again:    if ((n = select(FD_SETSIZE, &set, NULL, NULL, &timeout)) < 0) {         if (errno = EINTR)             goto again;    }    else if (n > 0) {        n = read(filedes,buf,sizeof(buf));        printf("read data:  %s\n",buf);    }    else        printf("tiomeout for select\n");    return n;}int main (void){    fprintf(stderr, "select returned %d.\n",input_timeout(STDIN_FILENO, 5));    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?