易截截图软件、单文件、免安装、纯绿色、仅160KB

c signal调用问题

开始学OS,按练习要求写的代码在gcc下无法编译:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>

void SIGFPEhandler2(int sig1) {
    printf("1");
    signal(SIGFPE, SIGFPEhandler1);
    exit(EXIT_SUCCESS);
}

void SIGFPEhandler1(int sig2) {
    signal(SIGFPE, SIGFPEhandler2);
    printf("2");
    exit(EXIT_SUCCESS);
}


int DBZ(int i) {
    return i/0;
}

int main(void) {
  (void) signal(SIGFPE, SIGFPEhandler1);
    DBZ(5);
    return EXIT_SUCCESS;
}


目的让signal handler调用另一个 handler,都是处理同样的signal。编译提示SIGFPEhandler1 undeclare.

是我实现的方法不对还是handler不能调用处理同样signal的handler? 望大家指正。

在linux下吗?

windows下, 用的Cygwin.


在SIGFPEhandler2 前 声明 SIGFPEhandler1

函数缺少前置声明

void SIGFPEhandler1(int sig2);
void SIGFPEhandler2(int sig1);
在文件头后

引用
在SIGFPEhandler2 前 声明 SIGFPEhandler1

编译不能通过, SIGFPEhandler2 undeclared.

引用
函数缺少


相关问答:

一个简单的c循环控制题

一个数如果好等于它的因子之和,这个数就成为"完数",例如6的因子为1,2,3而6=1+2+3,而6=1+2+3,因此6是“完数".编程序找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3
......

c/s 和b/s的区别是什么,一直搞不清

c/s 和b/s 的区别是什么,c/s需要服务器吗,怎么判断程序是c/s 还是b/s
C/S是服务器和客户端    B/S是服务器和浏览器

他们都有s,什么是s?就是server
那他们的区别是什么?一个是c,即client,一个 ......

这个是什么意思,unsigned int c:2, d:1;

struct s1 {
char ch, *ptr;
union {
short a, b;
unsigned int c:2, d:1;
}
struct s1 *next;
};


主要看不懂符号 :

请达人指点一二
http://blog.cechina.cn/true ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号