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 undeclared.
相关问答:
有这样两个问题,希望高手指点:
第一:
struct struct_A{
int a;
char b;
int c;
short d;
}
struct struct_B{
int a;
char b;
short c;
......
char data[255]={0},user[15],password[32];
if((fp=fopen("QQ.ini","wb+"))==NULL)
{
printf("无法创建QQ.ini文件\n");
system("pause");
exit(0); ......
一个数如果好等于它的因子之和,这个数就成为"完数",例如6的因子为1,2,3而6=1+2+3,而6=1+2+3,因此6是“完数".编程序找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3
......
在ue中从远程unix用二进制方式下载c文件到本地,修改之后用二进制方式上传到unix中,再用vi打开该文件,每行后面就会有一个^M的换行符,如果采用ascii方式下载,二进制方式上传的话就没有^M,那请问这样会对程序文件 ......
c/s 和b/s 的区别是什么,c/s需要服务器吗,怎么判断程序是c/s 还是b/s
C/S是服务器和客户端 B/S是服务器和浏览器
他们都有s,什么是s?就是server
那他们的区别是什么?一个是c,即client,一个 ......