设为首页 加入收藏

TOP

多进程编程(八)
2012-08-26 13:53:26 】 浏览:22944
Tags:进程 编程
bsp;      运行结束
             后,系统将恢复调用进程的信号掩码为信号收到前的状态.另外,
             使用sigset()时,disp为SIG_HOLD,则该信号将会加入调用进程的
             信号掩码中而信号的定位不变.
             sighold()将信号加入调用进程的信号掩码中.
             sigrelse()将信号从调用进程的信号掩码中删除.
             sigignore()将信号的定位设置为SIG_IGN.
             sigpause()将信号从调用进程的信号掩码中删除,同时挂起调用
             进程直到收到信号.
             若信号SIGCHLD的信号定位为SIG_IGN,则调用进程的子进程在终
             止时不会变成僵死进程.调用进程也不用等待子进程返回并做相
             应处理.
        返回值:调用成功则signal()返回最近调用signal()设置的disp的值.
             否则返回SIG_ERR.
        例子一:设置用户自己的信号中断处理函数,以SIGINT信号为例:
             int flag=0;
             void myself()
             {
                 flag=1;
                 printf("get signal SIGINT\n");
                 /*若要重新设置SIGINT信号中断处理函数为本函数则执行以
                  *下步骤*/
                 void (*a)();
                 a=myself;
                 signal(SIGINT,a);
                 flag=2;
             }
             main()
             {
                 while (1) {
                     sleep(2000);  /*等待中断信号*/
                     if (flag==1) {
                         printf("skip system call sleep\n");
                         exit(0);
                     }
                     if (flag==2) {
                         printf("skip system call sleep\n");
                         printf("waiting for next signal\n");
                     }
                 }
             }
    11.kill()
        功能:向一个或一组进程发送一个信号.
        语法:#include <sys/types.h>
             #include <signal.h>
             int kill(pid,sig);
          &n
首页 上一页 5 6 7 8 9 10 11 下一页 尾页 8/25/25
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Core Dump?! 下一篇字符串转换篇

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目