Создать новый процесс и заблокировать родительский процесс
#include <process.h>pid_t vfork( void );
libc
Эта функция порождает новый процесс и блокирует родительский до тех пор, пока дочерний процесс не вызовет execve() или не завершится (вызвав _exit() или другим способом).
Ноль дочернему процессу, и (позже) ID дочернего процесса родительскому. При возникновении ошибок, дочерний процесс не создаётся, и функция возвращает -1
и устанавливает errno.
POSIX 1003.1 X/Open Systems Interfaces Extension
Для исключения возможности взаимной блокировки процессы, являющиеся дочерними после исполнения vfork() никогда не получают сигналов SIGTTOU
или SIGTTIN
; вместо этого вывод или ioctl всегда разрешены, а попытки ввода приводят к ситуации EOF
.
execve(), _exit(), fork(), ioctl(), sigaction(), wait()
Предыдущий раздел: Описание API системной библиотеки