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信号……如果子进程收到信号,将会执行中断服务函数。

      代码结果执行如下:

      成功执行!

  • 相关阅读:
    接口的经典使用方法
    多态的程序例子
    log4j常用配置过程
    log4j.properties对于web app摆放的位置
    MySQL优化实例
    No sql 相关
    yii直接执行sql
    android NDK JNI设置自己的log输出函数
    android web 网址收集
    WebKit加载网页的流程
  • 原文地址:https://www.cnblogs.com/han-bing/p/6087420.html
Copyright © 2011-2022 走看看