I've got two programs which need to communicate (which eliminates 
un-named pipes).  Information needs to be sent in both directions such 
that one program (say it's called the master) sends a couple of bytes 
to and then waits for a response from the other program (say it's called the 
slave) and so on.  It looks like if you open the pipe (or FIFO file) from 
both sides in read/write mode that the pipe is opened non-blocking so what 
ends up happening is that the side which sends first just keeps sending and 
doesn't wait for a response.  

....yeah, I should probably be using sockets, but this is a sort of 
'legacy' system.

phil