Return to BSD News archive
Xref: sserve comp.unix.bsd:13779 comp.unix.sys5.r4:7120 Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!ames!koriel!rutgers!njitgw.njit.edu!earth!dileep From: dileep@earth.njit.edu (Katz) Newsgroups: comp.unix.bsd,comp.unix.sys5.r4 Subject: Asynchronous I/O Keywords: pipe, FIFO, signals Message-ID: <1994Apr28.154047.4957@njitgw.njit.edu> Date: 28 Apr 94 15:40:47 GMT References: <2ov4ov$gg4@news.hal.COM> Sender: news@njit.edu Distribution: usa Organization: New Jersey Institute of Technology Lines: 54 Nntp-Posting-Host: earth-gw.njit.edu Hi everyone, A novice question. I would like to be informed asynchronously about a file descriptor being ready for reading. Could anyone suggest ways of doing that? I am trying this way: I believe SIGPOLL could be used to monitor only for streams, but that R4 would allow monitoring for any open desc.s I tried using SIGPOLL, and even SIGIO, ofcourse having set the process for the descriptor with I_SETSIG. Strangely, the handler is invoked for the input activity just once. Never after that. Could anyone give me any pointers on this. Please respond to dkatta@encore.com ---------------------------------------- The relevant code follows: void iohandler(int sig) { fd_set readfds; FD_ZERO(&readfds); FD_SET(low_infd, &readfds); if ( (select(low_infd+1, &readfds, NULL, NULL, NULL) != 0) ){ if (FD_ISSET(low_infd, &readfds) != 0) /***Do the rea***/ } } main() { ..... ioctl(low_infd, I_SETSIG, S_INPUT|S_HIPRI); sigset(SIGIO, iohandler); ..... } Dileep