Системный вызов для порождения нового процесса

Прототип системного вызова

#include <sys/types.h>
#include <unistd.h>
 
pid_t fork(void);

Описание системного вызова

Системный вызов fork служит для создания нового процесса в операционной системе UNIX. Процесс, который инициировал системный вызов fork, принято называть родительским процессом (parent process). Вновь порожденный процесс принято называть прооцессом-ребенком (child process). Процес-ребенок является почти полной копией родительского процесса. У порожденного процесса по сравнению с родительским процессом изменяются значения следующих параметров:

При однократном системном вызове возврат из него может произойти дважды: один раз в родительском процессе, а второй раз в порожденном процессе. Если создание нового процесса произошло успешно, то в порожденном процессе системный вызов вернет значение 0, а в родительском процессе положительное значение, равное идентификатору процесса-ребенка. Если создать новый процесс не удалось, то системный вызов вернет в инициировавший его процесс отрицательное значение.
 
Системный вызов
fork является единственным способом породить новый процесс после инициализации операционной системы UNIX.