设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
请问如何恢复信号处理动作为默认?(那们兄弟能不能将GNU ...
返回列表
查看:
712
|
回复:
9
请问如何恢复信号处理动作为默认?(那们兄弟能不能将GNU C的函数库结构讲一下)
[复制链接]
asnoka
asnoka
当前离线
积分
196
IP卡
狗仔卡
发表于 2005-1-9 23:36:36
|
显示全部楼层
|
阅读模式
在FC3中,我的一个测试程序,中间调用了signal函数,我对SIGINT(ctrl-c)指定了一个动作,但是第二次我按下ctrl-c时怎么没有恢复,书上说用signal(SIGINT,SIG_DEL)就可以恢复了,我试了一下不行的,看头文件,又有些迷茫.请问如何解决呢?
谢谢先.
附再问,那位兄弟能给我说一下CNU C的函数库结构.
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
svenwang
svenwang
当前离线
积分
114
IP卡
狗仔卡
发表于 2005-1-10 01:20:16
|
显示全部楼层
要显式的恢复把,试一下就知道了。
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
void (*oldsig)(int);
void sig_int(int sig)
{
printf("Receive signal: %d\n", sig);
signal(sig, oldsig);
}
int main(void)
{
oldsig = signal(SIGINT, sig_int);
for (;;) sleep(1);
return 0;
}
回复
支持
反对
使用道具
举报
显身卡
asnoka
asnoka
当前离线
积分
196
IP卡
狗仔卡
楼主
|
发表于 2005-1-10 02:52:26
|
显示全部楼层
void (*oldsig)(int);
请问这是一种什么声明格式,能不能给我详说一下呢?
回复
支持
反对
使用道具
举报
显身卡
asnoka
asnoka
当前离线
积分
196
IP卡
狗仔卡
楼主
|
发表于 2005-1-10 03:09:19
|
显示全部楼层
是不是oldsig是一个函数指针,我用别的名字替换了一下,试试也行,于是我就不明白这个东西是做什么用的了?是一个空函数吗?
回复
支持
反对
使用道具
举报
显身卡
cyberpsyche
cyberpsyche
当前离线
积分
134
IP卡
狗仔卡
发表于 2005-1-10 10:30:47
|
显示全部楼层
man 了一个signal。。。
“The signal() function returns the previous value of the signal handler,”
所以,我想用signal(sig, &sig_int);也可以吧。
回复
支持
反对
使用道具
举报
显身卡
cyberpsyche
cyberpsyche
当前离线
积分
134
IP卡
狗仔卡
发表于 2005-1-10 11:39:03
|
显示全部楼层
我可能会错意了,楼主是不是想一直截获SIGINT,然后自己处理??
回复
支持
反对
使用道具
举报
显身卡
asnoka
asnoka
当前离线
积分
196
IP卡
狗仔卡
楼主
|
发表于 2005-1-10 13:56:53
|
显示全部楼层
我主是要想在第一截获后,进行相关处理,再在第二次操作时恢得到原先的默认操作,即按下ctrl-c时退出.
回复
支持
反对
使用道具
举报
显身卡
cyberpsyche
cyberpsyche
当前离线
积分
134
IP卡
狗仔卡
发表于 2005-1-10 14:05:19
|
显示全部楼层
这样的话,二楼兄弟的办法就可以啊,当然也可以在sig_int()里用一下
signal(sig, SIG_DFL);
恢复成默认也可以的。
回复
支持
反对
使用道具
举报
显身卡
asnoka
asnoka
当前离线
积分
196
IP卡
狗仔卡
楼主
|
发表于 2005-1-10 14:29:12
|
显示全部楼层
谢谢了,书中给出的是signal(sig,SIG_DEL);总是编译不成功,结果也许是DFL,对了,这些宏都是在SINGAL.H中声明的吗?大哥能不能帮我说一下GNU C库函数的结构,谢谢先!!!
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2005-1-11 19:13:25
|
显示全部楼层
这和c库函数没有关系,而是需要去看看《UNIX环境高级编程》。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表