3 .ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
4 .if !
\a\\$4
\a\a .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
7 .ie
\a\\$3
\a\a .ft \\$1
11 .Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
16 .aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
19 .aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
22 .aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
24 .de EX \" start example
41 spawnveg \- process spawn with process group and session control
45 .L "int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);"
63 controls the new process group and session:
66 The new process becomes a session leader.
67 is called in the child context.
70 The new process is in the callers process group.
73 The new process becomes a process group leader.
76 The new process joins the process group
79 It is possible to code all process creation (except for
89 do this on systems that don't support
91 This makes porting to NT and Windows a snap: a simple
95 implementation using the NT or Windows process primitives.
97 fork(2), exec(2), setpgid(2), setsid(2), spawnve(2)