In Linux, the system call fork() creates a virtually identical copy of the running program. Where there was one, there is now two. The same program in the same spot. Bitwise Or: | Logical Or: || 4 in binary is 100 6 is 110. 4 | 6 1 0 0 1 1 0 1 1 0 6 Now all these flags for file openings have numeric values of powers of 2. O_whatever is 1. O_something_else is 2. O_thatthing is 4. O_whatever | O_thatthing = 5, or a combination of those 2 bits.