社区
Linux/Unix社区
帖子详情
用alarm和pause来实现sleep:分不够可在加
yutongjun108
2003-01-14 10:02:54
请用系统调用alarm和pause来实现函数sleep(seconds)
...全文
144
4
打赏
收藏
用alarm和pause来实现sleep:分不够可在加
请用系统调用alarm和pause来实现函数sleep(seconds)
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cwhh
2003-01-14
打赏
举报
回复
void sig_alarm(int signal)
{
return;
}
void sleep2(int seconds)
{
signal(SIGALRM,sig_alarm);
alarm(seconds);
while(pause()==-1&&errno=EINTR) return;
}
ari
2003-01-14
打赏
举报
回复
执行非本地跳转。简单的讲就是跨函数goto
在这里的功能是避免在pause调用之前捕捉到信号,
从而将程序陷入pause
具体用法可以
参阅unix/linux 手册.
============================
man setjmp
man longjmp
salaciouswolf
2003-01-14
打赏
举报
回复
ari(薛定锷) :
薛大虾,能不能解释一下setjmp和longjmp的功能,以及在此程序中的作用?
谢谢了,我是菜鸟,别见笑!
ari
2003-01-14
打赏
举报
回复
static jmp_buf jmpbuf;
#define JMPVAL 1
static
void sig_alarm(ing signo)
{
longjmp( jmpbuf, JMPVAL );
return;
}
void sleep3( int seconds )
{
int jmpval=0;
signale( SIGALRM, sig_alarm );
alarm(seconds);
jmpval = setjmp( jmpbuf );
if( jmpval == 0 )
pause();
else
return;
}
c语言
pause
,C语言中的
pause
()函数和
alarm
()函数以及
sleep
()函数
C语言中的
pause
()函数和
alarm
()函数以及
sleep
()函数C语言
pause
()函数:让进程暂停直到信号出现头文件:#include 定义函数:int
pause
(void);函数说明:
pause
()会令目前的进程暂停(进入睡眠状态), 直到被信号(signal)所中断.返回值:只返回-1.错误代码:EINTR 有信号到达中断了此函数.C语言
alarm
()函数:设置信号传送闹钟头文件:#...
alarm
(),
pause
(),
sleep
()函数
alarm
函数: unsigned int
alarm
(unsigned int seconds); 功能:使用
alarm
可以设置一个定时器(闹钟时间),如果设置为0,则表示取消之前的设置;否则在将来的某个时刻该定时器会超时,当定时器超时时,产生SIGALRM信号。如果忽略或不捕捉此信号,则其默认动作是终止调用该
alarm
函数的进程。注:每个进程只能有一个闹钟时间。 返回值:0或以前闹钟设...
使用
alarm
和
pause
实现
sleep
的初级认识
又有一段时间没写了。。 今天看到一句话,“
sleep
函数在底层是用
alarm
和
pause
实现
的”,就上网搜了一下,看了好一会儿才明白是怎么回事。
alarm
函数其实就是个定时器,每个进程只能维护一个这样的定时器。这个函数是有返回值的,通常是0,如果在一个
alarm
还没结束时就调用了另一个
alarm
,那么第二个
alarm
会替换第一个,并返回第一个剩下的秒数。 当
alarm
函数顺利超时时,会发出
利用
alarm
()和
pause
()函数
实现
sleep
()函数
原文地址:http://blog.csdn.net/yuzhihui_no1/article/details/44855419
sleep
()是执行挂起一段时间,而
alarm
()函数是定时器,
pause
()函数则是挂起进程,当出现信号打断时,才会继续往前执行; 先来
分
享下
alarm
()函数,
alarm
()函数用来设置一个定时器,当时间超时时,会产生SIGALRM信号,该信号默认
信号的发送和捕捉函数(
alarm
、kill、raise、
pause
、
sleep
、abort)
1.
alarm
函数(1)
alarm
函数原型
alarm
(设置信号传送闹钟)所需头文件#include #include 函数说明
alarm
()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参
Linux/Unix社区
23,224
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章