poll实例

来源:互联网 发布:程序员薪资调查 编辑:程序博客网 时间:2024/05/22 15:48
#include <stdio.h>
#include 
<unistd.h>
#include 
<sys/poll.h>
#define TIMEOUT 5       /* poll timeout, in seconds */
int main (void)
{
        
struct pollfd fds[2];
        
int ret;
        
/* watch stdin for input */
        fds[
0].fd = STDIN_FILENO;
        fds[
0].events = POLLIN;
        
/* watch stdout for ability to write (almost always true) */
        fds[
1].fd = STDOUT_FILENO;
        fds[
1].events = POLLOUT;
        
/* All set, block! */
        ret 
= poll (fds, 2, TIMEOUT * 1000);
        
if (ret == -1) {
                perror (
"poll");
                
return 1;
        }
        
if (!ret) {
                printf (
"%d seconds elapsed.\n", TIMEOUT);
                
return 0;
        }
        
if (fds[0].revents & POLLIN)
                printf (
"stdin is readable\n");
        
if (fds[1].revents & POLLOUT)
                printf (
"stdout is writable\n");
        
return 0;
}
0 0
原创粉丝点击