<sys/types.h> <sys/wait.h> pid_t waitpid(pid_t pid, int* status, int options);//成功返回子进程ID,失败返回-1,status保存子进程终止状态,可为NULL
pid<-1,等待进程组ID为pid绝对值的任何子进程
pid=-1,等待任何子进程,相当于wait
pid=0,等待进程组ID与目前进程相同的任何子进程(常用)
pid>0,等待任何子进程识别码为pid的子进程
options可取WNOHANG WUNTRACED
前者表示如果子进程没有结束,则返回0,不阻塞,若子进程结束了,则返回子进程PID,如果没有指定这个参数,waitpid也会阻塞等待
后者表示若子进程进入停止状态,则马上返回,若子进程处于结束状态,则不予理会。
如果不想用options,则用0表示
一些信号类型
SIGHUP
用户终端连接结束时发出,用于通知一个会话内的各个作业,这时他们与控制终端不再连接。
SIGINT
SIGQUIT
SIGABRT:abort发出的信号
SIGSEGV:驶入访问未分配给自己的内存
SIGPIPE:管道破裂,用管道进行通信的连个进程,读管道没有打开或者一额外终止都会收到这个信号。
SIGTERM:kill默认产生这个信号
SIGKILL:立即结束程序
SIGCHLD:子进程结束的时候父进程会收到这个信号。