In Linux (2.6.35-22-generic), `man pipe` states that 

> 
> pipe() creates a pipe, a unidirectional data channel that can be used for interprocess communication." 
> 
> 
> 

In FreeBSD (6.3-RELEASE-p5), `man pipe` states that 

> 
> The pipe() system call creates a pipe, which is an object allowing bidirectional data flow, and allocates a pair of file descriptors."
> 
> 
> 

One is unidirectional, the other is bidirectional. I hope this isn't a silly question, but which method is the standard way of doing this? Are they both POSIX compliant? 

To make my intentions clear, I lost some points on an exam for believing pipe() was one way and am looking for some ammo to get any points back ;p