Any variables declared before the fork command have the same value in both the parent and the child. If one of the processes changes the value of one of these variables this change will not affect the value of the variables in the other process. If a process tries to read before something is written to the pipe, the process is suspended until something is written. The buffer size for the pipe is fixed. Once it is full all further writes are blocked.
Pipes work on a first in first out basis.
FIFO's are in System V but not 4.3 BSD Unix. A named pipe creates a file which can be opened by any process for reading or writing. This file is special because its contents are removed as soon as any process reads them. The access privileges follow the same format an the chmod unix command. When mknod is used to create a pipe the dev field is ignored.