I am writing two different terminal programs that will communicate with each other via named pipes. The client will have to read from two input sources: stdin and its read fifo, and likewise for the server.
The problem that I am having is that the client and the server seem to be blocked so although I type in the terminal, nothing gets sent.
What is the correct way to setup the fifos. And by setup I mean in what order should they be opened/closed. Thanks
For example, I am doing the following in the client:
Code:
//Open client's read fifo (O_RDWR)
while ( select(maxfd, &temp_readset, NULL, NULL, NULL) > 0)
{
if ( FD_ISSET(fileno(stdin), &temp_readset) )
{
//Read from std input
//Open client's write fifo to send data to server
}
if(FD_ISSET(client_receive_fifo, &temp_readset )
{
//Open client's read fifo
// Do stuff with data received from the server
//Close client's read fifo
}
temp_readset = original_readset;
}