vfork(2) System Calls Manual vfork(2) vfork - (libc -lc) #include pid_t vfork(void); glibc ( feature_test_macros(7)): vfork(): Since glibc 2.12: (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L) || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE Before glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500 ( POSIX.1) vfork() fork(2) vfork() pid_t vfork() vfork() _exit(2) exec(3). vfork() fork(2) . fork(2). vfork() clone(2). . execve(2). vfork() fork(2) ( _exit(2) ) execve(2). . exit(3) ( stdio(3) ) _exit(2). fork(2) vfork() ( ) vfork() . ( execve(2)). fork(2) fork(2) . fork(2) exec(3) . BSD vfork() execve(2) . . vfork() : . vfork() fork(2) . execve(2) . vfork() 4.2BSD : " . vfork fork." fork(2) vfork() vfork(): o vfork(). o vfork() (MMU) fork(2) . ( POSIX.1-2008 vfork() POSIX posix_spawn(3) fork(2)+ exec(3) MMU.) o vfork() ( /proc/sys/vm/overcommit_memory proc(5)) . ( .) fork(2) ( ) (OOM). fork pthread_atfork(3) NPTL vfork(). fork LinuxThreads. ( pthreads(7) .) vfork() clone(2) flags : CLONE_VM | CLONE_VFORK | SIGCHLD . 4.3BSD; POSIX.1-2001 ( OBSOLETE). POSIX.1-2008 vfork(). vfork() 3.0BSD. 4.4BSD fork(2) NetBSD . fork(2) 2.2.0-pre6 . 2.2.0-pre9 ( i386 ) . glibc 2.0.112. . : vfork() ( ). vfork() . . ( setuid(2) ) . vfork(). vfork() ( dlopen(3)). mmap(2) . . BSD : " SIGTTOU SIGTTIN vfork() ioctl ." clone(2) execve(2) _exit(2) fork(2) _Fork(3) unshare(2) wait(2) 3 . . : . 6.18 8 2026 vfork(2)