进程控制函数记录
//建立一个新的进程:
pid_t fork( void);
/*
返回值:
大于 0 的数,此时就是父进程
等于 0 的数,此时就是子进程
小于 0 的数,表示调用失败
*/
//以异常方式结束进程:
void abort(void);
//若测试的条件不成立则终止进程:异常断言
void assert(intexpression);
//正常结束进程:
void exit(int status);
//结束进程执行:
void _exit(int status);
//设置程序正常结束前调用的函数:
int atexit(void (*func)(void));
//设置程序正常结束前调用的函数:
int on_exit(void (* function)(int,void*),void *arg);
//保存目前堆栈环境:
int setjmp(jmp_buf environment);
//jmp_buf 存储的是寄存器信息
//保存目前堆栈环境:
int sigsetjmp(sigjmp_buf env, int savemask);
//上下文:堆栈、当前寄存器、当前的状态(线程,进程)、下一条指令的位置、栈内存地址
//跳转到原先 setjmp保存的堆栈环境:
void longjmp(jmp_buf environment, int value);
//改变进程优先顺序:跳转到原先 sigsetjmp 保存的堆栈环境
void siglongjmp(sigjmp_buf env, int val);
<sys/types.h>
<sys/wait.h>
//等待子进程的状态
int wait(int *status);
//一般来讲是和 fork 配套使用
//等待子进程中断或结束:
pid_t waitpid(pid_t pid,int * status,int options);
/*
options:
WNOHANG 非阻塞
WUNTRACED 被调试
WCONTINUED 发生了信号导致进程暂停 SIGSTOP SIGPAUSE SIGCONT
*/