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

在执行信号处理程序来一个信号会怎么样?

    来源: 互联网  发布时间:2017-01-27

    本文导语:  如果来的是同一个信号呢? 我知道在可靠信号处理机制下信号会被阻塞,那在不可靠信号机制下呢?是丢弃还是再次中断? 如果来的是不同的信号呢? | owenliang@linux-7lsl:~/csdn/src> ./main & [2]...

如果来的是同一个信号呢?
我知道在可靠信号处理机制下信号会被阻塞,那在不可靠信号机制下呢?是丢弃还是再次中断?

如果来的是不同的信号呢?

|
owenliang@linux-7lsl:~/csdn/src> ./main &
[2] 14084
owenliang@linux-7lsl:~/csdn/src> kill -SIGINT 14084
owenliang@linux-7lsl:~/csdn/src> !kill -SIGINT 14084
owenliang@linux-7lsl:~/csdn/src> !kill -SIGINT 14084
owenliang@linux-7lsl:~/csdn/src> kill -SIGINT 14084
owenliang@linux-7lsl:~/csdn/src> kill -SIGINT 14084
owenliang@linux-7lsl:~/csdn/src> !
owenliang@linux-7lsl:~/csdn/src> 

充分展示了信号不排队, 信号屏蔽, 一个线程一个掩码的事实.

#include 
#include 
#include 
#include 
#include 
/*
          int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                                            void *(*start_routine) (void *), void *arg);
 */

void* thread_func(void*)
{
        while(1)
        {
                pause();
        }
}

void sigfunc(int)
{
        write(1, "!", 1);
        sleep(10);
}

int main()
{
        pthread_t tid;

        signal(SIGINT, sigfunc);

        if (pthread_create(&tid, NULL, thread_func, NULL) == -1)
        {
                perror("pthread_create");
                exit(1);
        }

        while(1)
        {
                pause();
        }

        return 0;
}

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












  • 相关文章推荐
  • 如何让批处理文件执行完毕后窗口不关闭,批处理文件直接点击执行
  • 怎么在java程序中执行系统命令或其他可执行程序(像批处理一样)?
  • 我准备做个批处理文件来删除某文件夹下后缀为Txt的文件,可系统一次执行不完,还要手动敲一个回车,怎么处理?
  • 在编写驱动程序的时候,timer处理中,遇到了其他某timer处理例程以外的代码的执行。请指点,各位
  • 在linux中,中断处理是否作为单独的进程执行?
  • 【求助】如果在一个文件内执行多条语句(批处理)
  • 批处理脚本的并行执行
  • Windows系统下,Cygwin.bat批处理文件怎么添加并执行其他命令?
  • jar是通过批处理实现双击后执行的吗?
  • dylanwolf你的程序不行呀!!!执行批处理!(win2k)
  • C# 执行bat批处理文件的小例子
  • 关于ORACLE中执行批处理的问题
  • 有谁知道,DOS下的批处理-循环执行命令FOR的用法??(对你来说,可能很简单?
  • 关于中断处理的问题:为什么schedule()后不直接跳到进程执行?而要再判断一次?
  • 编写shell脚本执行远端windows的批处理
  • sqlserver中通过osql/ocmd批处理批量执行sql文件的方法
  • mysql从执行.sql文件时处理n换行的问题
  • 通过JDBC连接数据库,执行抄作后,关闭了连接,数据服务器端的进程还在,怎麽处理?
  • 如何将CLASSPATH=c:myclass; 写到批处理中去执行,而不用去配置环境变量
  • C#中执行批处理文件(*.bat)的方法代码
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 怎么在一个程序的执行过程中中止执行它?比如一个按钮的响应程序中,执行一半中止??20分!!!
  • linux下通过crond实现自动执行程序
  • 我用GCC生成的可执行文件无法直接在shell命令行下执行,这是为什么?可以用调试器调入执行。我用Red Hat7.0
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • 如何实现一个线程组内多线程的非同不执行,即一个线程执行完毕后再执行下一个线程???
  • Microsoft IE MSHTML内存破坏远程代码执行漏洞
  • 请问:我发现如果在/usr/local/bin 与/usr/bin下都有同一个执行文件时,当在shell下执行时,只会执行/usr/local/bin,下的,怎么改过来?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • SUSE10下,如何使用perl语言执行一条语句:从一台机器telnet到远端另一台机器,在远端机器上执行命令,并能获取到执行结果。请高手指点,Very 谢谢~
  • linux下不使用sudo命令执行docker的操作步骤


  • 站内导航:


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

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

    浙ICP备11055608号-3