Разница между системными вызовами fork() и exec() в Linux заключается в их функциях: 45
- fork() создаёт новый процесс, который является практически полной копией процесса-родителя, выполняющего этот вызов. 27 После выполнения fork() получаются два абсолютно одинаковых процесса — основной и порождённый. 1
- exec() изменяет пользовательский контекст текущего процесса, не создавая новый. 45 С помощью exec() можно запустить программу, при этом соответствующий ей исполняемый файл будет располагаться в пространстве памяти процесса. 3
Таким образом, fork() отвечает за создание процессов, а exec() — за их использование и запуск.