waitpid与一些信号

<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:子进程结束的时候父进程会收到这个信号。

上一篇:oeasy教您玩转linux010206 蒸汽机车 sl


下一篇:基于腾讯地图定位组件实现周边POI远近排序分布图