#include <stdio.h> #include <stdlib.h> #include <poll.h> #include <unistd.h> int poll( struct pollfd *fds, nfds_t nfds, int timeout ); int main() { struct pollfd pfd[1]; int len = 1; /* pfd[0]=0; */ pfd[0].events = POLLIN; pfd[0].revents = 0; int done = 0; while ( !done ) { switch ( poll( pfd, 1, 1000 ) ) { case 0: puts( "timeout" ); break; case -1: puts( "error" ); break; default: puts( "success" ); char buf[200]; if ( pfd[0].revents & POLLIN ) { ssize_t s = read( pfd[0].fd, buf, sizeof(buf) - 1 ); if ( s > 0 ) { buf[s] = '\0'; puts( "buf" ); } } break; } } }
【LINUX】poll
原创
©著作权归作者所有:来自51CTO博客作者wzdouban的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:罗马数字
下一篇:【linux】epoll
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux 多路转接 —— poll
带你一命通关 Linux 多路转接 poll三十分钟手撕底层内涵
linux 服务器 c++ 网络 文件描述符