1.关于signal函数的定义

  signal最开始的原型是这:

  void (*signal(int signo, void (*func)(int)))(int);
看过下面两行,了解到上面这一行是这个意思,signal(int signo,void (*func)(int))是一个函数,其返回值是 void (*)(int) ,也就是,带一个整型参数的,返回空类型的函数。

  sighandler_t signal(int signum, sighandler_t handler);

  查到的有个这:typedef void (*sighandler_t)(int); 《===》typedef  void (*)(int) sighandler_t;

  

但是我在Linux环境下这样测试:

       void (*)(int ,char *) p;

这样会报错,错误提示是:

test2.c: In function ‘main’:
test2.c:14:9: error: expected identifier or ‘(’ before ‘)’ token
test2.c:15:2: error: ‘p’ undeclared (first use in this function)
test2.c:15:2: note: each undeclared identifier is reported only once for each function it appears in

这样   void (*p)(int ,char *) ;   编译会成功。

2.我在父进程中向子进程发送一个SIGUSER1信号

  第一种情况:我将signal放到fork() 前面,子进程可以进入自定义的信号处理函数

     signal(SIGUSR1,handler_1);
     pid=fork();

  第二种情况:我将signal放到fork() 的后面或者放到pid==0的条件语句中,子进程就进不到自定义的信号处理函数中

以上几个问题还没有搞明白,希望大神们可以指点

linux signal函数遇到的问题的更多相关文章

  1. [linux]signal函数不起作用

    #include "apue.h" #include <sys/wait.h> static void sig_int(int); /* our signal-catc ...

  2. Signal ()函数详细介绍 Linux函数

    http://blog.csdn.net/ta893115871/article/details/7475095 Signal ()函数详细介绍 Linux函数 signal()函数理解 在<s ...

  3. Signal ()函数详细介绍 Linux函数(转)

    Signal ()函数详细介绍 Linux函数 收藏人:紫火神兵     2012-09-27 | 阅:5659  转:22    |   来源   |  分享               signa ...

  4. 三十、Linux 进程与信号——信号的概念及 signal 函数

    30.1 信号的基本概念 信号(signal)机制是Linux 系统中最为古老的进程之间的通信机制,解决进程在正常运行过程中被中断的问题,导致进程的处理流程会发生变化 信号是软件中断 信号是异步事件 ...

  5. Linux下利用signal函数处理ctrl+c等信号

    前言 linux下能够通过信号机制来实现程序的软中断,是一个很实用的编程方法. 我们平时在程序执行的时候按下ctrl-c.ctrl-z或者kill一个进程的时候事实上都等效于向这个进程发送了一个特定信 ...

  6. Linux 信号(二)—— signal 函数

    弗洛伊德认为:要解决这些苦恼,当事人就要通过回忆并理解自己早期的童年经历,来获得对潜意识冲突的顿悟.弗洛伊德的疗法被称为“精神分析” (psychoanalysis),在 20 世纪的很长一段时间被心 ...

  7. Linux 信号详解一(signal函数)

    信号列表 SIGABRT 进程停止运行 SIGALRM 警告钟 SIGFPE 算述运算例外 SIGHUP 系统挂断 SIGILL 非法指令 SIGINT 终端中断 SIGKILL 停止进程(此信号不能 ...

  8. signal()函数

    转自:http://blog.csdn.net/sddzycnqjn/article/details/7285760 1. 信号概念 信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件) ...

  9. signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数

    信号是与一定的进程相联系的.也就是说,一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如,一个进程可以忽略某些信号而只处理其他一些信号:另外,一个进程还可以选择如何处理信号.总之,这些总与特定 ...

随机推荐

  1. 在Java中字符串是通过引用传递的?

    这是一个经典的java问题.在stackoverflow上,许多类似的问题已经被问过了,但是许多回答是错误的或不完整的. 如果你不想深入思考的话,这个问题很简单.如果你想明白的更彻底,那么问题可能容易 ...

  2. IOS AFN (第三方请求)

    什么是AFN全称是AFNetworking,是对NSURLConnection.NSURLSession的一层封装虽然运行效率没有ASI高,但是使用比ASI简单在iOS开发中,使用比较广泛 AFN的g ...

  3. 在一个Excel单元格内输入多行内容

    有时候,我们想在一个Excel单元格中输入多行内容,可以根据不同情况选择下面的方法来实现: 方法一:如果有大量的单元格需要这样做,采取此种设置格式的方法,选中需要这种格式的单元格,执行“格式→单元格” ...

  4. 关于映射异常org.hibernate.MappingException: An association from the table DUTY_INFO refers to an unmapped class: com.pms.entities.other.Department的原因。

    在编程过程当中由于修改过了包名. 原来的包名是: com.pms.entities.base 然后改为了:com.pms.entities.other 当我重新映射生成数据表的时候就报错:org.hi ...

  5. GPU CUDA之——深入理解threadIdx

    http://blog.csdn.net/canhui_wang/article/details/51730264 摘要 本文主要讲述CUDA的threadIdx. 1. Grid,Block和Thr ...

  6. thinkphp5.0查询到的数据表中的路径是反斜杠导致无法正常显示图片怎么办?

    添加到数据表中图片的路径有时会是反斜杠,这就导致了在url后面写路径的时候会识别不出来(不过src后面写路径就可以识别),所以就需要把路径中的反斜杠替换成正斜杠,代码如下: $datu = Db::q ...

  7. BZOJ 3289: Mato的文件管理 【莫队 + 树状数组】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=3289 3289: Mato的文件管理 Time Limit: 40 Sec  Memory ...

  8. Linux学习总结(七)-磁盘管理 du df fdisk

    一 命令df df,即disk free,可用来查看当前系统的挂载情况,也可以用来查看整体磁盘的使用情况df 不带参数,默认以KB单位显示df -i -----查看inodes 使用情况,要清楚理解i ...

  9. MVC学习十:MVC 特性作用和MVC 验证

    根据代码分析特性用处 [DisplayName("学员名")] [DataType(DataType.Text)] [StringLength(,ErrorMessage=&quo ...

  10. POJ 1644 分苹果 (递归解法)

    把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t < ...