zoukankan      html  css  js  c++  java
  • Linux学习笔记(11)-kill函数

      明天开始学习kill函数的用法。

    ——————————————————————————————————————————————

      kill函数可以用来向指定的进程发送一个指定的信号,在我的理解的来看,就是人为的创造一个中断。

      该函数原形:int kill(pid_t pid,int sig);

      其中pid为进程ID,sig为发送的信号。

      这个函数超级简单,现在做个试验,首先创建一个父进程和子进程,然后父进程向子进程发送一个SIGINT信号,子进程给出一个回应。

      

    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    #include<errno.h>
    #include<string.h>
    #include<signal.h>
    
    void handler(int sig)
    {
        printf("获取到Ctrl+c信号!
    ");
    
        exit(0);
    }
    
    int main(void)
    {
        int pid;
    
        pid = fork();
        if(pid < 0)
        {
            printf("进程创建出错:%d.
    ",errno);
            exit(0);
        }
        else if(pid == 0)
        {
            printf("子进程创建成功,进程ID为:%d.
    ",getpid());
            signal(SIGINT,handler);
            while(1)
            {
                sleep(1);
                printf("通过!
    ");
            }
        }
        else
        {
            printf("这是父进程,进程ID为:%d.",getpid());
            sleep(5);
            kill(pid,SIGINT);
            wait(NULL);
            printf("父进程退出!
    ");
        }
    
        return 0;
    }

      首先创建一个子进程,改变当它收到SIGINT信号之后的处理,然后让他进入休眠,5秒后,父进程发送SIGINT信号……如果子进程收到信号,将会执行中断服务函数。

      代码结果执行如下:

      成功执行!

  • 相关阅读:
    【NOIP2016提高A组集训第14场11.12】随机游走
    poj2378 树形DP
    简单博弈论总结加例题解析
    uva11426 欧拉函数应用
    poj3090欧拉函数求和
    lightOJ1370 欧拉函数性质
    hdu4497 正整数唯一分解定理应用
    hdu1215 正整数唯一分解定理应用
    lightoj 1236 正整数唯一分解定理
    素数筛两种方法
  • 原文地址:https://www.cnblogs.com/han-bing/p/6087420.html
Copyright © 2011-2022 走看看