首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

linux signal异常-signal不是一个函数咋回事

2012-03-31 
linuxsignal错误---signal不是一个函数怎么回事#includesignal.h#includestdlib.h#includestdio.hst

linux signal错误---signal不是一个函数怎么回事
#include<signal.h>
#include<stdlib.h>
#include<stdio.h>
static void sig_quit(int sig);
int main(){
sigset_t newmask,oldmask,pendmask;
if(signal(SIGQUIT,sig_quit)==SIG_ERR)
{printf("can't catch sigquit\n");exit(0);}

sigemptyset(&newmask);
sigaddset(&newmask,SIGQUIT);
if(sigprocmask(SIG_BLOCK,&newmask,&oldmask)<0)
{printf("error\n");exit(0);}
sleep(7);
if(sigpending(&pendmask)<0) {printf("error\n");exit(0);}

if(sigismember(&pendmask,SIGQUIT)<0) {printf("pending sigquit\n");}

if(sigprocmask(SIG_SETMASK,&oldmask,NULL)<0){printf("error\n");exit(0);}
printf("this is text\n");
sleep(5);
exit(0);
return 0;
}

static void sig_quit(int signal)
{
  printf("catch sigquit\n");
  if(signal(SIGQUIT,SIG_DFL)==SIG_ERR)
{exit(0);}
}


出现sig_quit函数中的signal不是一个函数怎么回事

[解决办法]
man 说 signal 可能不用了 。使用sigaction替代。
[解决办法]
sig_quit参数的名字覆盖了signal函数的名字

热点排行