当前位置:  技术问答>linux和unix

sleep函数,信号

    来源: 互联网  发布时间:2017-05-21

    本文导语:  #include #include #include void sig_alrm(int signo) {     /* nothing to do */ } unsigned int mysleep(unsigned int nsecs) {     struct sigaction newact, oldact;     unsigned int unslept;     newact.sa_handler = sig_alrm;     sigemptyset(&newact.sa_mask);  ...

#include
#include
#include

void sig_alrm(int signo)
{
    /* nothing to do */
}


unsigned int mysleep(unsigned int nsecs)
{
    struct sigaction newact, oldact;
    unsigned int unslept;

    newact.sa_handler = sig_alrm;
    sigemptyset(&newact.sa_mask);
    newact.sa_flags = 0;
    sigaction(SIGALRM, &newact, &oldact);

    alarm(nsecs);
    pause();

    unslept = alarm(0);
    sigaction(SIGALRM, &oldact, NULL);

    return unslept;
}

int main(void)
{
    while (1)
    {
        mysleep(2);
        printf("Two seconds passedn");
    }
    return 0;
}

以上程序没两秒输出一次Two seconds passed。但是如果我把信号处理函数sig_alrm注释掉,再把newact.sa_handler = sig_alrm;也注释掉。那么当程序受到信号后应该采取系统默认处理方式:结束掉当前进程。可是我运行时每到pause()函数就会永远挂起。。
sleep函数,信号[图片]
sleep函数,信号[图片]

|
  我个人认为是这种情况下,相当于函数指针为 NULL

|
特意在ubuntu上运行下,可以2秒打印一次。

    
 
 

您可能感兴趣的文章:

  • linux的sleep函数有什么用
  • JAVA里有没有类似SLEEP的函数?
  • 请问一下sleep_on_timeout函数的返回直问题(在线等)
  • sleep() 函数的原理是什么
  • 怎么知道哪些函数需要连接什么库,如memset,sleep等等
  • Linux 中的 sleep() 函数如何精确到 1 毫秒?
  • Linux下是否有类似Sleep的使程序挂起的函数。
  • 请教Linux下的sleep()函数。。。
  • unix环境高级编程 第十章十九节sleep函数实现为什么要先阻塞SIGALRM?
  • select/sleep函数难道不能够被一个进程中的多个线程调用?
  • 在线程里面使用sleep函数是否会引起整个的进程都睡眠
  • 在线程中sleep函数休眠的问题
  • Linux 0.12内核中关于__sleep_on()函数的一点疑问,谢谢各位大哥帮忙解答啦。
  • nanosleep小延时不能实现,这个函数和select、sleep用什么区别
  • 求 思路 信号量控制函数中的线程sleep 100微秒。(linux)
  • sleep 的替代函数如何实现
  • 请教下linux中关于sleep()函数的问题
  • 急求~~~~sleep()函数的疑惑
  • linux下调用sleep或者usleep函数的CPU线程调度情况?
  • PHP中使用sleep函数实现定时任务实例分享
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.util.concurrent枚举timeunit的类成员方法: sleep定义及介绍
  • 请问大侠们,线程中sleep到底行不行?? 希望是线程sleep的终结帖!!
  • java命名空间java.lang类thread的类成员方法: sleep定义及介绍
  • sleep在哪个头文件啊
  • 请教sleep和pthread_delay_np:阻塞线程/阻塞进程? iis7站长之家
  • crond和sleep比较?
  • Linux sleep() 进程与线程
  • man sleep的问题
  • 有什么系统调用的sleep是以毫秒作为精度的?
  • linux下的SLEEP N(SECONDS)是什么用的?
  • 送分! UNIX C编程。 如何休眠5秒钟? 类似WINDOWS下的Sleep(5000).
  • windows下死循环需要加sleep,否则CPU爆满, linux下呢?
  • 为什么要将一个进种sleep掉
  • sleep
  • 求教sleep(1000),着急!着急!着急!
  • 请教sleep和pthread_delay_np:阻塞线程/阻塞进程?
  • java 线程,对当前线程(非主线程)调用sleep,为什么主线程(窗口)也没反应了
  • UNIX下用 sleep 时,进程不回响应,kill 都不行,都没有别的办法?
  • LINUX下访问oracle时sleeping的线程过多,达到300多个,造成系统拥堵!
  • java里有没有象vc里的sleep(1000)一样的功能的东西 当然不是实现Runnable不是继承线程类
  • linux一个sleep的奇怪问题,高手来给解答下了


  • 站内导航:


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

    ©2012-2021,