linux signal函数遇到的问题
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函数遇到的问题的更多相关文章
- [linux]signal函数不起作用
#include "apue.h" #include <sys/wait.h> static void sig_int(int); /* our signal-catc ...
- Signal ()函数详细介绍 Linux函数
http://blog.csdn.net/ta893115871/article/details/7475095 Signal ()函数详细介绍 Linux函数 signal()函数理解 在<s ...
- Signal ()函数详细介绍 Linux函数(转)
Signal ()函数详细介绍 Linux函数 收藏人:紫火神兵 2012-09-27 | 阅:5659 转:22 | 来源 | 分享 signa ...
- 三十、Linux 进程与信号——信号的概念及 signal 函数
30.1 信号的基本概念 信号(signal)机制是Linux 系统中最为古老的进程之间的通信机制,解决进程在正常运行过程中被中断的问题,导致进程的处理流程会发生变化 信号是软件中断 信号是异步事件 ...
- Linux下利用signal函数处理ctrl+c等信号
前言 linux下能够通过信号机制来实现程序的软中断,是一个很实用的编程方法. 我们平时在程序执行的时候按下ctrl-c.ctrl-z或者kill一个进程的时候事实上都等效于向这个进程发送了一个特定信 ...
- Linux 信号(二)—— signal 函数
弗洛伊德认为:要解决这些苦恼,当事人就要通过回忆并理解自己早期的童年经历,来获得对潜意识冲突的顿悟.弗洛伊德的疗法被称为“精神分析” (psychoanalysis),在 20 世纪的很长一段时间被心 ...
- Linux 信号详解一(signal函数)
信号列表 SIGABRT 进程停止运行 SIGALRM 警告钟 SIGFPE 算述运算例外 SIGHUP 系统挂断 SIGILL 非法指令 SIGINT 终端中断 SIGKILL 停止进程(此信号不能 ...
- signal()函数
转自:http://blog.csdn.net/sddzycnqjn/article/details/7285760 1. 信号概念 信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件) ...
- signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数
信号是与一定的进程相联系的.也就是说,一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如,一个进程可以忽略某些信号而只处理其他一些信号:另外,一个进程还可以选择如何处理信号.总之,这些总与特定 ...
随机推荐
- 一个老IT产品管理者对于产品经理工作的经验总结
一个老IT产品管理者对于产品经理工作的经验总结 1. 任何行业,包括IT行业,所谓产品管理.产品经理,其核心应该是企业产品管理制度,也就是说,只有企业存在相应的.合理的产品管理体系和制度,产品管理.产 ...
- February 19 2017 Week 8 Sunday
We accept the love we think we deserve. 我们接受自己认为配得上的爱. A few months ago, I tried to date with a girl ...
- Centos7 安装eclipse IDE for C++
1.安装前eclipse需要java, yum -y install java 查看版本java -version 2.下载eclipse IDE http://www.eclipse.org/dow ...
- ZOJ Monthly, January 2019 Little Sub and Isomorphism Sequences 【离线离散化 + set + multiset】
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5868 Little Sub and Isomorphism Seque ...
- Search - Dictionary
Search III Your task is to write a program of a simple dictionary which implements the following ins ...
- 阅读layim代码小记,监听事件实现方法
(function (win) { //注册事件 var chat = function () { $('#open').on('click', function () { sendMessage() ...
- 从数据库中取出的数据,字段名为gb2312的 数据转码为utf8
$pj = Pj::find()->where($map)->asArray()->one(); if(!empty($pj)) { foreach ($pj as $k=>$ ...
- $Yeasion$的码风修改历程
总之,今天是一个值得纪念的伟大日子,我将自己的码风进行了彻底的修改,大概是参考了Pks和\(Rqy\)的码风,分为以下几点. 1.变量名.在所有的计算符号之前和之后加空格.如:"&& ...
- POJ 1328 Radar Installation(很新颖的贪心,区间贪心)
Radar Installation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 106491 Accepted: 2 ...
- OGG故障集锦(一)
说明:此系列仅作OGG故障记录,未包含处理过程.仅作故障备案 ① ERROR OGG-00519 Source Context : SourceModule : [ggapp.ddl] Sourc ...