posix_spawn()
The posix_spawn() function creates a child process by directly specifying an executable to load.
spawn()
The QNX Neutrino spawn() function is similar to posix_spawn().
fork()
The fork() function creates a new child process by sharing the same code as the calling process and duplicating the calling process's
data to give the child process an exact copy. Most process resources are inherited.
vfork()
The vfork() function (which should be called only from a single-threaded process) is useful when the purpose of fork() would have been to create a new system context for a call to one of the exec*() functions.
exec*()
The exec*() family of functions replaces the current process with a new process, loaded from an executable file. Since the calling process
is replaced, there can be no successful return.