std/process
March 26, 2026 ยท View on GitHub
Process management and control functions.
Types
std::process::rusage
Resource usage statistics (Linux/FreeBSD).
Fields:
std::timeVal ru_utime- User CPU timestd::timeVal ru_stime- System CPU timelong ru_maxrss- Maximum resident set sizelong ru_minflt- Minor page faultslong ru_majflt- Major page faults- Additional resource tracking fields
Functions
getPID
int getPID()
Returns current process ID.
getPPID
int getPPID()
Returns parent process ID (Linux/FreeBSD).
kill
int kill(int pid, int sig)
Sends signal to process.
fork
int fork()
Creates child process. Returns 0 in child, child PID in parent.
clone
int clone(int(char*) fn, char* stack, int flags, char* arg, int* pTID, char* tls, int* cTID)
Linux-specific process/thread creation with fine-grained control.
Clone Flags:
std::process::cloneVM- Share memory spacestd::process::cloneFS- Share filesystem infostd::process::cloneFiles- Share file descriptorsstd::process::cloneSighand- Share signal handlersstd::process::cloneThread- Create threadstd::process::cloneNewNS- New namespace- Additional flags for advanced control
execve
int execve(char* fName, char** argv, char** envp)
Executes program with arguments and environment.
execl
int execl(char* path, ...)
Executes program with variadic arguments.
waitpid
int waitpid(uint pid, int* status, int options)
Waits for child process to change state.
wait4
uint wait4(uint pid, int* status, int options, std::process::rusage* rusage)
Waits for process with resource usage info (Linux/FreeBSD).
Status Macros
isTermSignal
int isTermSignal(int s)
Checks if process terminated by signal.
isNormalExit
int isNormalExit(int s)
Checks if process exited normally.
getExitStatus
int getExitStatus(int s)
Extracts exit status code.
Variables
std::process::environment
char** environment
Environment variables array (Linux/FreeBSD).
Example
import <std/process>
int pid = std::process::fork();
if (pid == 0) {
std::print("Child process\n");
std::exit(0);
} else {
int status;
std::process::waitpid(pid, &status, 0);
std::print("Child exited with status: ", std::process::getExitStatus(status), "\n");
}