(pipeDevCreate(), write(), read()) , select() , .
, select() , . . select (loop).
:
pipeDrv();
int fdHi = pipeDevCreate("/pipe/high",numMsgs,msgSize);
int fdLo = pipeDevCreate("/pipe/low",numMsgs,msgSize);
...
write(fdHi, buf, sizeof(buf));
...
fd_set rdFdSet;
while(1)
{
FD_ZERO(&rdFdSet);
FD_SET(fdHi, &rdFdSet);
FD_SET(fdLo, &rdFdSet;
if (select(FD_SETSIZE, &rdFdSet, NULL, NULL, NULL) != ERROR)
{
if (FD_ISSET(fdHi, &rdFdSet))
{
while(read(fdHi,buf,size) > 0)
{
}
}
if (FD_ISSET(fdLo, &rdFdSet))
{
if (read(fdLo,buf,size) > 0)
{
}
}
}
}