zoukankan      html  css  js  c++  java
  • Linux 信号详解四(pause,alarm)

    pause函数
    --将进程置为可中断睡眠状态,然后它调用内核函数schedule(),使linux进程调度器找到另一个进程来运行。
    --pause使调用者进程挂起,直到一个信号被捕获。
    alarm函数
    --设置一个闹钟延迟发送信号,告诉linux内核n秒以后,发送SIGALRM信号。
    //kill 函数
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <errno.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <signal.h>
    
    void catch_signal(int sig)
    {
        switch(sig)
        {
        case SIGALRM:
            printf("sigalrm have recv !
    ");
            alarm(1);
        }
    }
    
    int main(int arg,char *args[])
    {
        //注册信号
        if(signal(SIGALRM,catch_signal)==SIG_ERR)
        {
            perror("signal error");
            return -1;
        }
        //一个alarm()函数只会发送一次信号
        alarm(1);
        while(1)
        {
            pause();
            printf("accept !
    ");
        }
    
        printf("game over!
    ");
        return 0;
    }
  • 相关阅读:
    券商
    养生之道
    房产买卖
    货币常识
    虚拟币
    其他开源项目
    Shiro
    文件上传插件
    JAVA常见问题
    如何写好PPT
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6080718.html
Copyright © 2011-2022 走看看