#include #include #include #include #include #include #include void main(int argc, char **argv) { int i,n; struct pollfd fds; if ( -1 == (fds.fd=open(argv[1],O_RDONLY))) fds.fd=0; fds.events=POLLIN; fds.revents=0; while (1) { if ( -1 == ( i=poll(&fds, 1, 0))) perror ("poll"); if (i>0) { printf("%d %d\n", i, fds.revents); if ( fds.revents & POLLIN ) { puts ("POLLIN"); /* read i*/ } if ( fds.revents & POLLPRI ) puts ("POLLPRI"); if ( fds.revents & POLLOUT ) puts ("POLLOUT"); if ( fds.revents & POLLRDNORM ) puts ("POLLRDNORM"); if ( fds.revents & POLLRDBAND ) puts ("POLLRDBAND"); if ( fds.revents & POLLNORM ) puts ("POLLNORM"); if ( fds.revents & POLLERR ) puts ("POLLERR"); if ( fds.revents & POLLHUP ) puts ("POLLHUP"); if ( fds.revents & POLLNVAL ) puts ("POLLNVAL"); } } }