Shipfi (春暖花开,开满我的阳台)
刹那风波翻过, 一转眼从前便已难复再
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 213 文章- 76 评论- 65
自定义实现的signal函数
#include
<
signal.h
>
#include
<
stdio.h
>
#include
<
setjmp.h
>
/**/
/*
* signal function use sigaction
*
*/
typedef
void
Sigfunc(
int
signo);
static
jmp_buf env_alarm;
Sigfunc
*
signal1(
int
signo,Sigfunc
*
func)
{
struct
sigaction act,oact;
act.sa_handler
=
func;
sigemptyset(
&
act.sa_mask);
act.sa_flags
=
0
;
if
(signo
==
SIGALRM)
//
timer
{
#ifdef SA_INTERRUPT
act.sa_flags
|=
SA_INTERRUPT;
#endif
}
else
{
#ifdef SA_RESTART
act.sa_flags
|=
SA_RESTART;
#endif
}
if
(sigaction(signo,
&
act,
&
oact)
<
0
)
return
(SIG_ERR);
return
(oact.sa_handler);
}
void
sig_proc(
int
signo)
{
//
timeout then return
longjmp(env_alarm,
10
);
//
10 means return value is 10;
}
int
main()
{
int
i
=
1
;
int
jmpret;
if
(signal1(SIGALRM,sig_proc)
==
SIG_ERR)
{
printf(
"
signal SIGALRM error\n
"
);
return
-
1
;
}
if
((jmpret
=
setjmp(env_alarm))
!=
0
)
//
longjmp return
{
printf(
"
time out! return %d.\n
"
,jmpret);
//
here will print return 10.
return
0
;
}
alarm(
2
);
//
set timeer 2 second,and then call the sig_proc
while
(i)
{
if
(i
%
3
==
0
)
printf(
"
the value is:%d\n
"
,i);
i
++
;
}
alarm(
0
);
return
0
;
}
使用sigaction来实现signal函数,然后用一个例子测试一下.
该例子打印3的倍数,两秒运行后接收到SIGALRM信号. 超时退出.
posted @ 2008-04-23 17:25
shipfi
阅读(153)
评论(0)
编辑
收藏
网摘
所属分类:
技术文章
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
人才
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
Google站内搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》
相关文章:
相关链接:
所属分类的其他文章:
Flags for use with SCHANNEL_CRED
使用OpenSSL建立根CA及自签名证书制作过程 [转载]
vsFTPd 服务器初学者指南 [转载]
GDB 进行调试 使用心得
Unix编程常见问题解答(转)
Bash shell中几个知识点备忘
GNU Make笔记
linux 的库操作命令 ar和nm (转载)
“实际用户ID”、“有效用户ID”和“保存的设置用户ID”
最新IT新闻:
针对LINQ to SQL及ADO.NET Entity Framework的元数据同步工具
TinEye - 用图像搜索图像
Silverlight开源版本Moonlight 1.0 beta发布
Digg创始人:不再考虑出售公司 将适机并购
福布斯:中国经济增长减速 网游行业从中获益
公告
My Pic:
Welcome~~~
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
随笔分类
Linux Shell(2)
(rss)
Study English(6)
(rss)
VC代码(1)
(rss)
非技术(52)
(rss)
技术文章(116)
(rss)
项目日志(29)
(rss)
随笔档案
2008年10月 (4)
2008年8月 (1)
2008年7月 (2)
2008年6月 (2)
2008年5月 (7)
2008年4月 (12)
2008年2月 (1)
2008年1月 (7)
2007年12月 (7)
2007年6月 (3)
2007年5月 (6)
2007年4月 (6)
2007年3月 (1)
2007年2月 (10)
2007年1月 (5)
2006年12月 (3)
2006年7月 (2)
2006年6月 (5)
2006年5月 (18)
2006年4月 (11)
2006年3月 (8)
2006年2月 (7)
2005年12月 (1)
2005年11月 (3)
2005年9月 (14)
2005年8月 (15)
2005年7月 (3)
2005年6月 (12)
2005年5月 (15)
2005年4月 (4)
2005年3月 (18)
文章分类
.net历程(14)
(rss)
Linux - Unix - 开源(12)
(rss)
Python(2)
(rss)
STB(2)
(rss)
Web 标准(12)
(rss)
工作相关(5)
(rss)
技术,思想(9)
(rss)
人物(3)
(rss)
软件工程(6)
(rss)
数据库技术(2)
(rss)
图像处理
(rss)
学习总结(1)
(rss)
杂七杂八(8)
(rss)
相册
My Pic
收藏夹
电子图书下载(2)
(rss)
BBS
China Unix
IT PUB
BLOG
QSdNet Blog
Sonic
thbird
younther的专栏
老燕Blog
刘韧Blog
吕震宇
思归
享受代码 享受人生
小鱼儿
知秋一叶
Dot Net
.Net论坛
C#技术站
Move To .Net
发赛特技术站
微软.net主页
中国Dot Net论坛
English
ASP FAQS
C# Help
Codeguru
CoderProject
Developer Express
DotNet Junkies Blog
ProgrammersHeaven
Sourceforge
Wikipedia
WindowForms
按照类及命名空间的索引
JAVA
Java视线
J道
MSDN
MSDN归档技术
MSDN技术资源库
MSDN中文Library
MSDN中文网站
VC
VC知识库文档中心
非技术
51Music
世界经理人
唐诗宋词
西安资源信息网
智识学术网
其它技术站点
51Testing
Geniusleft's Space
Linux编程
Nabble
Nabble offers free forum hosting and mailing list archiving
Unix技术社区
红联门户
看雪学院
孟子E章
积分与排名
积分 - 76620
排名 - 608
最新评论
1. re: Cscope 的使用
谢谢 (jsh)
2. re: The Bible
好东西, 谢谢 (pathfinder1)
3. re: 砍柴闲谈水浒 (转至天涯)
本来下岗了.上网乐趣.自然快乐的死去.井水不犯河水.可偏偏就有不安分的到处搜索连接.把心里话说了.点燃些生活希望.跟你们运转.给你们找政治的.自然的.生活的.甚至科学的.朋友的.所有循环的连接点.也就... (张瑞献)
阅读排行榜
1. 以前看书时记得一些笔记(二),很早了,现在再看都有些看不懂了(2029)
2. VC中类型的相互转化(1878)
3. 以前看书时记得一些笔记(三),很早了,现在再看都有些看不懂了 (1756)
4. 线程池 And 线程池的使用(基于.net平台)(1439)
5. 继续看《COM技术内幕》(1295)
评论排行榜
1. 继续看《COM技术内幕》(17)
2. SIP包的分析(3)
3. VC中类型的相互转化(3)
4. 以前看书时记得一些笔记(二),很早了,现在再看都有些看不懂了(3)
5. Installing and using Net-SNMP On Linux(2)