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 ALSO fork(2), exec(2), prctl(2), setrlimit(2), sproc(2). DIAGNOSTICS All diagnostics are from either sproc(2) or exec(2). Page 1