Reference

spawnveg(3)

process spawn with process group and session control

NAME

spawnveg - process spawn with process group and session control

SYNOPSIS

$1$2#include <ast.h>#include <ast.h>#include <ast.h>#include <ast.h>#include <ast.h>#include <ast.h>#include <ast.h>#include <ast.h>

$1$2int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);int spawnveg(const char* command, char** argv, char** envv, pid_t pgid);

DESCRIPTION

$1$2spwanvegspwanvegspwanvegspwanvegspwanvegspwanvegspwanvegspwanveg combines fork(2), exec(2), setpgid(2) and setsid(2) into a single call.

$1$2commandcommandcommandcommandcommandcommandcommandcommand $1$2argvargvargvargvargvargvargvargv and $1$2envvenvvenvvenvvenvvenvvenvvenvv are as in execve(2). $1$2pgidpgidpgidpgidpgidpgidpgidpgid controls the new process group and session:

$1$2<0<0<0<0<0<0<0<0

The new process becomes a session leader. is called in the child context.

$1$200000000

The new process is in the callers process group.

$1$211111111

The new process becomes a process group leader.

$1$2>1>1>1>1>1>1>1>1

The new process joins the process group pgid.

COMMENTS

It is possible to code all process creation (except for vfork(2) hack like in csh(1)) using $1$2spawnvegspawnvegspawnvegspawnvegspawnvegspawnvegspawnvegspawnveg The proc(3) routines and ksh(1) do this on systems that don't support fork(2). This makes porting to NT and Windows a snap: a simple iffe(1) probe provides a $1$2spawnvegspawnvegspawnvegspawnvegspawnvegspawnvegspawnvegspawnveg implementation using the NT or Windows process primitives.

SEE ALSO

fork(2), exec(2), setpgid(2), setsid(2), spawnve(2)