易截截图软件、单文件、免安装、纯绿色、仅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的字符串问题

fastshow()
{
FILE *fp;
char name[10];
char ch[512];
printf("请输入待显示的文件名\n");
scanf("%s",name);
if((fp=fopen(name,"r"))==NULL)
{
printf ......

一个简单的c游戏

13个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到3者退出圈子,找出最后留在圈子中的人原来的序号
结果应该是13 可我的程序的结果是11 希望好心人帮改一下
#include <stdio.h>
#include < ......

百思不得其解的C程序问题,高手请进!

问题描述:
有一简单的C程序,如下:
void foo ( ) {
int i ;
p r i n t f ( "%d " , i ++);
}
int main ( ){ int j ;
for ( j = 0 ; j < 1 0 ; ++j ) foo ( ) ;
}

函 ......

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

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

他们都有s,什么是s?就是server
那他们的区别是什么?一个是c,即client,一个 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号