Are these three statements true?
The first one, i don't think its true because what sets up the pipes is the pipe() function.
The second one, isn't pipes one way, but sockets 2 way?
For the last one, select only tells you how many are ready to read from right, so its not true?
The reason we can use pipes between parent and child processes is that fork() will always set up the pipes.
Both pipes and sockets are two-way: in order to be able to both write to a process and read from a process, we use a single pipe or a socket.
Select allows a process to wait for multiple file descriptors at the same time, without getting blocked on any one of them.