第八章中出现了很多的函数,为了接下来的Homework和Shell Lab,这里对于第八章中的函数进行一个小小的汇总

进程相关

获取进程ID

#include <sys/types.h>
#include <unistd.h>

// 返回调用进程的PID
pid_t getpid(void);

// 返回调用进程的父进程的PID
pid_t getppid(void);

终止进程

#include <stdlib.h>

// 以status退出状态来终止进程
void exit(int status);

创建进程 fork()

#include <sys/types.h>
#include <unistd.h>

pid_t fork(void);

fork函数会创建一个子进程,这个子进程几乎和父进程完全一样,是父进程的一个副本,不过他们共享着相同的文件。

在调用fork时,会产生一个子进程;调用结束后,分别在父进程和子进程中返回值:父进程中fork返回的是子进程的pid,子进程的返回值是0。

回收子进程

一个子进程中止后,父进程需要将其回收,释放系统内存资源。回收子进程通过waitpid函数来完成。

#include <sys/types.h>
#include <sys/wait.h>

pid_t waitpid(pid_t pid, int *startup, int options);
pid_t wait(int *startup);

调用 wait(&status) 等价于调用waitpid(-1, &status, 0)