网站地图 | RSS订阅 老铁博客 - 专业上海SEO上海SEO优化,分享网站优化知识,同时提供上海SEO服务。
你的位置:首页 » fionread
ASP程序

fionread 作用

fionread 作用

 当在ioctl里使用FIONREAD时,除了获得所指定的读缓存大小以外,还有清除设备准备就绪状态的作用.

发布时间:2018年7月13日 | 评论:0 | 浏览: | 标签:fionread  

ASP程序

fionread

fionread

当在ioctl里使用FIONREAD时,除了获得所指定的读缓存大小以外,还有清除设备准备就绪状态的作用.

 1 #include <sys/types.h>
 2 #include <sys/time.h>
 3 #include <stdio.h>
 4 #include <fcntl.h>
 5 #include <sys/ioctl.h>
 6 #include <unistd.h>
 7 
 8 int main(int argc, char* argv[])
 9 {
10     int debug = 0;
11     char buffer[128];
12     int result, nread;
13     fd_set inputs, testfds;
14     struct timeval timeout;
15     int status;
16     int* ptr = &inputs;
17     
18     FD_ZERO(&inputs);
19     printf("-----------------before SET-----%d-----------\n", *ptr);
20     FD_SET(0, &inputs);
21     printf("-----------------after SET-----%d-----------\n", *ptr);
22     
23     
24     while(1)
25     {
26         
27         timeout.tv_sec = 2;
28         timeout.tv_usec = 500000;
29         
30         testfds = inputs;
31         ptr = &testfds;
32         result = select(FD_SETSIZE, &testfds, (fd_set*)NULL,
33                                         (fd_set*)NULL, /*&timeout*/0);
34         printf("==========================================\n");                                        
35         
36         sleep(4);
37         switch(result)
38         {
39             case 0:
40                 printf("timeout \n");
41                 debug = FD_ISSET(0, &testfds);
42                 printf("t-----------------before SET-----%d----FD_SET--%d-----\n", *ptr, debug );
43                 break;
44             case -1:
45                 perror("select\n");
46                 exit(1);
47             default:
48                 if(FD_ISSET(0, &testfds))
49                     {
50                         printf("1-----------------before SET-----%d-----------\n", *ptr);
51                         //ioctl(0, FIONREAD, &nread);
52                         if(0 == nread)
53                             {
54                                 printf("keyboard done \n");
55                                 exit(0);
56                             }
57                             printf("-----------result--%d----------\n", result);
58                             nread = read(0, buffer, nread);
59                             buffer[nread] = 0;
60                             printf("read %d from keyboard: %s\n", nread, buffer);
61                             
62                             printf("1-----------------after SET-----%d-----------\n", *ptr);
63                     }
64                 break;
65         }
66         
67     }
68     return 0;
69 }
70

 

发布时间:2018年6月26日 | 评论:0 | 浏览: | 标签:fionread  

«1»