管道
进程间最简单的形式,只能进行单向通信
信号
内核层和用户层通信的一种形式,是软件层次上对中断机制的模拟
进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到来,事实上,进程也不知道信号到底什么时候到达
信号处理方法
第一种是捕捉,类似中断的处理程序,对于需要处理的信号,进程可以指定处理函数,由该函数处理;
第二种方法是忽略,忽略某个信号,对该信号不做任何处理,就像未发生过一样;
第三种方法是缺省,对该信号的处理保留系统的默认值,这种缺省操作,对大部分的信号的缺省操作是使得进程终止。进程通过调用signal来指定进程对某个信号的处理行为。
.signal
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
功能:
切换信号的处理方式
参数:
signum:信号的编号
handler:信号对应的处理方式
SIG_IGN 忽略信号
SIG_DFL 缺省信号处理方式
自定义的函数的函数名(指向函数的指针)
返回值:
成功返回之前注册的信号的处理方式
失败返回SIG_ERR
kill 其实是作为一个信号,由其中一个进程发给另一个进程,而发送的信号就是终止信号。