设为首页 加入收藏

TOP

多进程编程(九)
2012-08-26 13:53:26 】 浏览:22943
Tags:进程 编程
bsp;  pid_t pid;
             int sig;
        说明:本系统调用向一个或一组进程发送一个信号,该信号由参数sig指
             定,为系统给出的信号表中的一个.若为0(空信号)则检查错误但
             实际上并没有发送信号,用于检查pid的有效性.
             pid指定将要被发送信号的进程或进程组.pid若大于0,则信号将
             被发送到进程号等于pid的进程;若pid等于0则信号将被发送到所
             有的与发送信号进程同在一个进程组的进程(系统的特殊进程除
             外);若pid小于-1,则信号将被发送到所有进程组号与pid绝对值
             相同的进程;若pid等于-1,则信号将被发送到所有的进程(特殊系
             统进程除外).
             信号要发送到指定的进程,首先调用进程必须有对该进程发送信
             号的权限.若调用进程有合适的优先级则具备有权限.若调用进程
             的实际或有效的UID等于接收信号的进程的实际UID或用setuid()
             系统调用设置的UID,或sig等于SIGCONT同时收发双方进程的会话
             号相同,则调用进程也有发送信号的权限.
             若进程有发送信号到pid指定的任何一个进程的权限则调用成功,
             否则调用失败,没有信号发出.
        返回值:调用成功则返回0,否则返回-1.
        例子:假设前一个例子进程号为324,现向它发一个SIGINT信号,让它做
             信号处理:
             kill((pid_t)324,SIGINT);
    12.alarm()
        功能:设置一个进程的超时时钟.
        语法:#include <unistd.h>
             unsigned int alarm(sec)
             unsigned int sec;
        说明:指示调用进程的超时时钟在指定的时间后向调用进程发送一个
             SIGALRM信号.设置超时时钟时时间值不会被放入堆栈中,后一次
             设置会把前一次(还未到超时时间)冲掉.
             若sec为0,则取消任何以前设置的超时时钟.
             fork()会将新进程的超时时钟初始化为0.而当一个进程用exec()
             族系统调用新的执行文件时,调用前设置的超时时钟在调用后仍
             有效.
        返回值:返回上次设置超时时钟后到调用时还剩余的时间秒数.
        例子:int flag=0;
             void myself()
             {
                 flag=1;
                 printf("get signal SIGALRM\n");
                 /*若要重新设置SIGALRM信号中断处理函数为本函数则执行
                  *以下步骤*/
                 void (*a)();
                 a=myself;
                 signal(SIGALRM,a);
                 flag=2;
             }
             main()
             {
                 alarm(100);   &nb
首页 上一页 6 7 8 9 10 11 12 下一页 尾页 9/25/25
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Core Dump?! 下一篇字符串转换篇

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目