File descriptor open() in QNX

As I KNOW, The file descriptor should be UNIQUE throughout the OS.
But when I opened the pipe() fd0=2; fd1=3; my serial port file descriptor in another process is also 3. and my tcpip socket id is also the same.
Any one has any idea on this?

The file descriptor does not need to be unique throughout the OS, in fact, I am hard pressed to think of an OS where this is the case.

Think of stdin, stdout and sterr they are all the same in every program (0,1,2)

It’s unique to the process, not to the system.

Thanks to rgallen, mario, cdm.