PCREATE(3C)PCREATE(3C)NAME
pcreate: pcreatel, pcreatev, pcreateve, pcreatelp, pcreatevp - create a
process
SYNOPSIS
#include <unistd.h>
int pcreatel(const char *path, const char *arg0, ...,
const char *argn, 0);
int pcreatev(const char *path, char * const *argv);
int pcreateve(const char *path, char * const *argv,
char * const*envp);
int pcreatelp(const char *file, const char *arg0, ...,
const char *argn, 0);
int pcreatevp(const char *file, char * const *argv);
DESCRIPTION
pcreate in all its forms creates a new process and runs the requested
program. These routines are equivalent to a fork(2) and exec(2) pair
except that the caller incurs only a small logical swap space penalty
compared to fork. pcreate (using sproc(2)) requires that the calling
process have enough virtual space left (see setrlimit(2)) to create a
temporary 32K stack for the new process. This new stack also requires
system logical swap space. A fork on the other hand duplicates the
calling process, which requires the system to reserve logical swap space
for all modifiable portions of the calling process. A very large process
may not be allowed to fork due to insufficient backing store (swap area).
CAVEAT
The POSIX thread model (i.e. Pthreads) is incompatible with the sproc(2)
model of threading. As such the pcreate(3C) family of calls cannot be
used with Pthreads.
SEE ALSOfork(2), exec(2), prctl(2), setrlimit(2), sproc(2).
DIAGNOSTICS
All diagnostics are from either sproc(2) or exec(2).
Page 1