|
|
1.1 ! root 1: .TH FORK 2 ! 2: .SH NAME ! 3: fork \- create a new process ! 4: .SH SYNOPSIS ! 5: .B int fork (\|) ! 6: .SH DESCRIPTION ! 7: .I Fork\^ ! 8: causes creation of a new process. ! 9: The new process (child process) is an ! 10: exact copy of the calling process (parent process). ! 11: This means the child process inherits the following attributes from the parent ! 12: process: ! 13: .PP ! 14: .PD 0 ! 15: .RS 0.5i ! 16: .PP ! 17: environment ! 18: .PP ! 19: close-on-exec flag (see ! 20: .IR exec (2)) ! 21: .PP ! 22: signal handling settings (i.e., ! 23: .SM ! 24: .BR SIG_DFL ", " SIG_ING , ! 25: function address) ! 26: .PP ! 27: set-user-\s-1ID\s+1 mode bit ! 28: .PP ! 29: set-group-\s-1ID\s+1 mode bit ! 30: .PP ! 31: profiling on/off status ! 32: .PP ! 33: nice value (see ! 34: .IR nice (2)) ! 35: .PP ! 36: all attached shared memory segments (see ! 37: .IR shmop (2)) ! 38: .PP ! 39: process group ! 40: .SM ID ! 41: .PP ! 42: tty group ! 43: .SM ID ! 44: (see ! 45: .IR exit (2) ! 46: and ! 47: .IR signal (2)) ! 48: .PP ! 49: trace flag (see ! 50: .IR ptrace "(2) request 0)" ! 51: .PP ! 52: time left until an alarm clock signal (see ! 53: .IR alarm (2)) ! 54: .PP ! 55: current working directory ! 56: .PP ! 57: root directory ! 58: .PP ! 59: file mode creation mask (see ! 60: .IR umask (2)) ! 61: .PP ! 62: file size limit (see ! 63: .IR ulimit (2)) ! 64: .RE ! 65: .PD ! 66: .PP ! 67: The child process differs from the parent process in the following ways: ! 68: .IP ! 69: The child process has a unique process ! 70: .SM ID\*S. ! 71: .IP ! 72: The child process has a different parent process ! 73: .SM ID ! 74: (i.e., the ! 75: process ! 76: .SM ID ! 77: of the parent process). ! 78: .IP ! 79: The child process has its own copy of the parent's file descriptors. ! 80: Each of the child's file descriptors shares a common file pointer with the ! 81: corresponding file descriptor of the parent. ! 82: .IP ! 83: All semadj values are cleared (see ! 84: .IR semop (2)). ! 85: .IP ! 86: Process locks, text locks and data locks are not inherited by the child (see ! 87: .IR plock (2)). ! 88: .IP ! 89: The child process's ! 90: .IR utime , " stime" , " cutime" , ! 91: and ! 92: .I cstime\^ ! 93: are set to 0. ! 94: The time left until an alarm clock signal is reset to 0. ! 95: .PP ! 96: .I Fork\^ ! 97: will fail and no child process will be created if one or more of the ! 98: following are true: ! 99: .sp ! 100: .TP 15 ! 101: \s-1\%[EAGAIN]\s+1 ! 102: The system-imposed limit on the total number of processes under execution ! 103: would be exceeded. ! 104: .TP ! 105: \s-1\%[EAGAIN]\s+1 ! 106: The system-imposed limit on the total number of processes under execution ! 107: by a single user would be exceeded. ! 108: .SH RETURN VALUE ! 109: Upon successful completion, ! 110: .I fork\^ ! 111: returns a value of 0 to the child process and returns the process ! 112: .SM ID ! 113: of the ! 114: child process to the parent process. ! 115: Otherwise, a value of \-1 is ! 116: returned to the parent process, no child process is created, and ! 117: .I errno\^ ! 118: is set to indicate the error. ! 119: .SH NOTES ! 120: This manual page replaces the 4.2BSD manual page. ! 121: .SH "SEE ALSO" ! 122: exec(2), nice(2), plock(2), ptrace(2), semop(2), shmop(2), signal(2), times(2), ulimit(2), umask(2), wait(2). ! 123: .\" @(#)fork.2 6.2 of 9/6/83
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.