当前位置:  技术问答>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;
}

|
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;
}

|
ari(薛定锷) :
薛大虾,能不能解释一下setjmp和longjmp的功能,以及在此程序中的作用?
谢谢了,我是菜鸟,别见笑!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何用alarm实现每隔一段时间显示不同的内容?
  • 如何用系统调用实现每秒钟显示一次系统时钟,可以用getitimer,setitimer,alarm?
  • larm 时间已经过期(alarm<jiffies)是什么意思?
  • linux 下多线程 每个线程能否使用alarm来处理,信号是否会乱呢?
  • alarm() 和 signal()的问题
  • 请教一个alarm(0)的问题
  • 简易定时闹铃工具 Alarm Clock
  • 这个程序为什么 alarm 不起作用?
  • Alarm定时小问题
  • 我想找到alarm.c这个文件 但不知道怎么查找
  • alarm() signal()的问题??
  • 需要几分钟或半个小时或一个小时执行,定时用alarm还是sleep好?
  • aupe中关于alarm的困惑
  • socket tcp 关于 alarm() 和 recv() ?
  • alarm中关闭了socketfd,但是recvfrom无法知道
  • 请问为什么alarm失去作用?
  • 关于Linux下alarm信号的问题
  • alarm发闹铃信号,但只会执行一次.
  • alarm的问题
  • 博客 iis7站长之家
  • 关于 signal alarm pause
  • 为什么我在alarm信号里设置信号屏蔽就不好用呢,求解答


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3