当前位置:  技术问答>linux和unix

信号函数signal的问题

    来源: 互联网  发布时间:2017-02-04

    本文导语:  小弟正在学习Linux信号编程. 看到书上有一个例子,有点搞不懂.请问:signal(SIGHUP, sigroutine)中的sigroutine是不是指向函数的指针? 还有void sigroutine(int dunno) 中的dunno不是形参吗?没有赋值怎么会有值呢? 请高手为我解惑,谢...

小弟正在学习Linux信号编程.
看到书上有一个例子,有点搞不懂.请问:signal(SIGHUP, sigroutine)中的sigroutine是不是指向函数的指针?
还有void sigroutine(int dunno) 中的dunno不是形参吗?没有赋值怎么会有值呢?
请高手为我解惑,谢了
void sigroutine(int dunno) 
{
   switch (dunno) 
   {
      case 1:printf("Capture SIGHUP signal, the signal number is %dn", dunno); break;
      case 2:printf("Capture SIGINT signal, the signal number is %dn", dunno); break;
      case 3:printf("Capture SIGQUIT signal, the signal number is %dn", dunno);break;
   }
   return;
}
int main(void) 
{
   printf("process ID is %dn",getpid());
   if(signal(SIGHUP, sigroutine) == SIG_ERR)      {
      printf("Couldn't register signal handler for SIGHUP!n");
   }
   if(signal(SIGINT, sigroutine) == SIG_ERR)
   {
      printf("Couldn't register signal handler for SIGINT!n");
   }
   if(signal(SIGQUIT, sigroutine) == SIG_ERR)
   {
      printf("Couldn't register signal handler for SIGQUIT!n");
   }
   while(1)
     sleep(1);
   return 0;
}

|


#include 
#include 
#include 

void test_proc(int no)
{
        printf("%dn", no);
}

void test(int no, void (*fun)(int))
{
        printf("Call sub routinen");
        fun(no);
        printf("Return from sub routinen");
}

int main(void)
{
        test(5, test_proc);
        return 0;
}

|
请问:signal(SIGHUP, sigroutine)中的sigroutine是不是指向函数的指针?
=================
对,这个函数的原型就是void f(int);

还有void sigroutine(int dunno) 中的dunno不是形参吗?没有赋值怎么会有值呢?
=================
某个信号发生后,调用你的信号处理函数的时候,系统会把触发这个动作的信号的编号作为参数传入

    
 
 

您可能感兴趣的文章:

  • 信号处理函数里面用CRT函数可能导致"信号触发-处理"死循环吗?
  • 进入信号处理函数,是不是会自动把进入信号加入信号屏蔽字?还有sigpending
  • 编程语言 iis7站长之家
  • 关于被信号打断的函数的执行。
  • linux的信号处理函数中如何访问共享资源
  • Linux,aix,windows下可以查询非本进程的信号处理函数吗?
  • 请教信号量处理函数signal的问题?
  • sigaction如何设置信号执行函数时屏蔽和屏蔽本身信号.
  • 内核进程间发送信号用哪个函数,如果没有这东西,那内核里异步通知用哪个东西
  • 当进程处于socket读阻塞模式中,外部SIGNAL发生,此时信号相应响应函数可否进行socket写?
  • 请问:signal(), sigaction()函数会不会使自已所有的进程挂起啊,(这样就等接收各种信号,进行一些处理工作啊)
  • c++中怎么写sigaction()中的信号处理函数
  • 关于系统信号处理函数signal()的疑问.
  • 对信号处理函数的迷惑!
  • QT为什么发送这个信号,没有进入keyPressEvent()函数呢。。
  • 问个线程安全和异步信号安全函数的问题
  • linux中信号signal函数实例遇到的疑问
  • socket编程中的函数send和recv如何被信号中断?
  • apue书的的信号函数,看不懂
  • 向sourceid提问,还是关于“在定时器到时后,应该发送什么信号让scanf()函数返回?”的
  • 信号可靠还是不可靠,取决与信号本身还是signal()/sigaction()的区别?
  • 关于signal信号
  • 信号的"安全和不安全",仅仅是指signal()和sigaction()的区别么?
  • 如何将自定义的信号发给signal表记的进程?
  • ***************unix 系统中,信号量(signal)被屏蔽了,怎么开(是在命令行超作,不是在程序中)
  • 自定义信号的signal用法问题
  • linux signal 信号
  • signal()函数捕捉信号问题,有程序
  • 发送信号为什么出现User defined signal 1
  • 为什么在gdb下无法用signal捕捉到信号?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 学习linux的新手问:linux进程信号掩码以及信号阻塞与信号未决怎么理解?
  • 关于信号量与UNIX信号的疑问
  • 生产者消费者问题为什么不可以共用一个信号量,如果这个信号量可以设置取值固定为0到N,即当信号量取值为N的时候阻塞进程,是否也可以?
  • 当信号量(灯)遇上信号,help!
  • 请问什么时候发出SIGKILL信号、什么时候发出SIGTERM信号?
  • 安全信号和不安全信号的实现机制有什么不同么?
  • 如何确定信号的来源?即如何知道接收到的信号来自于哪一个进程号?
  • 自旋锁和读写自旋锁、信号量和读写信号量分别有什么区别?
  • 关于消息队列信号量信号共享内存等核心编程的问题(求知若渴!!!.....)
  • 可靠信号和不可靠信号的问题
  • semaphore.h sem.c Posix 信号量 System v 信号量
  • 【求助】linux/Unix下创建子进程,向父进程发送信号,子进程也能收到改信号,此时如何让子进程不收到信号
  • 终端被关闭后,bash收到哪些信号,这些信号是怎么来的?
  • 书上说,中断用自旋锁,进程,用信号量,但是,为什么中断不能用信号量?
  • linux 中信号量的使用 当信号初始化的时候设置的值大于1将是如何?
  • 大侠们求指导,电信骨干网光纤信号分流成多个千兆网信号
  • 32号信号和33号信号哪里去拉?
  • 请问线程中的信号量,怎么设置成0,1信号量?
  • Linux下的信号忽略和信号阻塞是什么意思
  • 在执行信号处理程序来一个信号会怎么样?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3