PCREATE(3C) PCREATE(3C)
pcreate: pcreatel, pcreatev, pcreateve, pcreatelp, pcreatevp - create a
process
#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);
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).
fork(2), exec(2), prctl(2), setrlimit(2), sproc(2).
all diagnostics are from either sproc [ Back ]
|