- 论坛徽章:
- 0
|
#include "apue.h"
static void sig_usr(int);
int main(int argc, char *argv[])
{
if (signal(SIGUSR1, sig_usr) == SIG_ERR)
err_sys("can't catch SIGUSR1");
if (signal(SIGUSR2, sig_usr) == SIG_ERR)
err_sys("can't catch SIGUSR2");
for ( ; ; )
pause();
exit (0);
}
static void sig_usr(int signo)
{
if (signo == SIGUSR1)
printf("recieve SIGUSR1\n");
else if (signo == SIGUSR2)
printf("recieve SIGUSR2\n");
else
err_dump("recieve signal %d\n", signo);
} |
APUE学到了第10章(信号),对于上面程序,想请问一下:
- if (signal(SIGUSR1, sig_usr) == SIG_ERR)
- //这句是否只是用signal() 产生一个signal handler,然后pause() 把该进程挂起,接着等待用户给出信号?
复制代码
不敢确定自己的理解是否正确,希望大家讲解一下,谢谢。 |
|