Advanced Programming in UNIX Environment Episode 6
发布时间:2020-12-15 16:13:27 所属栏目:安全 来源:网络整理
导读:信号(signal)用于通知进程发生了某种情况。进程有以下3种处理信号的方式: (1). 忽略信号。有些信号表示硬件异常。因为这些异常产生的后果不确定,所以不推荐使用这种处理方式。 (2). 按照系统默认方式处理。 (3). 提供一个函数,信号发生时调用该函数,这
信号(signal)用于通知进程发生了某种情况。进程有以下3种处理信号的方式: #include "apue.h"
#include <sys/wait.h>
static void sig_int(int);
int main(void)
{
char buf[MAXLINE];
pid_t pid;
int status;
if(signal(SIGINT,sig_int)==SIG_ERR);
err_sys("signal error");
printf("%% ");
while(fgets(buf,MAXLINE,stdin)!=NULL)
{
if(buf[strlen(buf)-1]=='n')
buf[strlen(buf)-1]=0;
if((pid=fork())<0)
{
err_sys("fork error");
}
else if(pid==0)
{
execlp(buf,buf,(char*)0);
err_ret("couldn't execute: %s",buf);
exit(127);
}
if((pid=waitpid(pid,&status,0))<0)
err_sys("waitpid error");
printf("%% ");
}
exit(0);
}
void sig_int(int signo)
{
printf("interrupt n%%");
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |