On the contrary, fork() has scalability trouble as memory grows. Even with copy on write, copying page tables is still O(1) with respect to address space (granted, with a significant divisor). This overhead becomes apparent as programs grow to gigabyte size -- a fork which before took microseconds can begin to take milliseconds. Forking is slow in many situations.
The issue described above can be avoided by using posix_spawn(3), which on linux uses vfork(2).
The issue described above can be avoided by using posix_spawn(3), which on linux uses vfork(2).