当前位置: 技术问答>linux和unix
用alarm和pause来实现sleep:分不够可在加
来源: 互联网 发布时间:2015-01-21
本文导语: 请用系统调用alarm和pause来实现函数sleep(seconds) | void sig_alarm(int signal) { return; } void sleep2(int seconds) { signal(SIGALRM,sig_alarm); alarm(seconds); while(pause()==-1&&e...
请用系统调用alarm和pause来实现函数sleep(seconds)
|
void sig_alarm(int signal)
{
return;
}
void sleep2(int seconds)
{
signal(SIGALRM,sig_alarm);
alarm(seconds);
while(pause()==-1&&errno=EINTR) return;
}
{
return;
}
void sleep2(int seconds)
{
signal(SIGALRM,sig_alarm);
alarm(seconds);
while(pause()==-1&&errno=EINTR) return;
}
|
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;
}
#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;
}
|
ari(薛定锷) :
薛大虾,能不能解释一下setjmp和longjmp的功能,以及在此程序中的作用?
谢谢了,我是菜鸟,别见笑!
薛大虾,能不能解释一下setjmp和longjmp的功能,以及在此程序中的作用?
谢谢了,我是菜鸟,别见笑!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。