你的位置:首页 > 软件开发 > 操作系统 > 多路转接之poll和select

多路转接之poll和select

发布时间:2015-03-30 02:00:40
先看poll(): 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <sys/stat.h> 5 #include <sy ...

先看poll():

多路转接之poll和select多路转接之poll和select
 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <sys/stat.h> 5 #include <sys/types.h> 6 #include <fcntl.h> 7 #include <poll.h> 8  9 #define oops(x, n) { perror(x); exit(n); }10 11 int main()12 {13   mkfifo("fifo1", 0644);  14   mkfifo("fifo2", 0644);  15   16   int fd1 = open("fifo1", O_RDWR);17   int fd2 = open("fifo2", O_RDWR);18   char buf[1000];19   for(;;)20   {21     struct pollfd pfd[] = {{0, POLLIN}, {fd1, POLLIN}, {fd2, POLLIN}};22     int ret = poll(pfd, 3, 1);23     if(ret > 0)24     {25       if(pfd[0].revents&POLLIN)26       {27         scanf(" %[^\n]", buf);  28         printf("keypad:%s\n", buf);29         if(strcmp(buf, "quit") == 0) break;  30       }31       if(pfd[1].revents&POLLIN)32       {33         int n = read(fd1, buf, sizeof(buf));  34         buf[n] = '\0';35         printf("fifo1:%s", buf);36       }37       if(pfd[2].revents&POLLIN)38       {39         int n = read(fd2, buf, sizeof(buf));  40         buf[n] = '\0';41         printf("fifo2:%s", buf);42       }43     }44 45   }46   close(fd1);47   close(fd2);48   unlink("fifo1");49   unlink("fifo2");50 51   return 0;52 }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:多路转接之poll和select

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录