0
点赞
收藏
分享

微信扫一扫

2.20kill、raise、abort函数

niboac 2022-04-30 阅读 59
linux

 

/*
    #include <sys/types.h>
    #include <signal.h>
    int kill(pid_t pid, int sig);
        -功能:给任何的进程或者进程组pid,发送某个信号任何的信号 sig
        -参数:
            -pid:需要发送给的进程的id
                >0 : 将信号发送给指定的进程
                =0 : 将信号发送给当前的进程组
                =-1 : 将信号发送给每一个有权限接收这个信号的进程
                <-1 : 这个pid=某个进程组的id取反(-12345表示给12345进程组发送信号)
            -sig:需要发送的信号的编号或者宏值(建议使用宏值因为不同的架构编号可能不同),0表示不发送任何信号
        kill(getppid(),9);
        kill(getpid(),9);
    
    #include <signal.h>
    int raise(int sig);
        -功能:给当前的进程发送信号
        -参数
            -sig:要发送的信号
        -返回值:
            成功 0
            失败 非0
    kill(getpid(),sig);
    
    #include <signal.h>
    void abort(void);
        功能:发送SIGABRT信号给当前进程,杀死当前进程
    kill(getpid(),SIGABRT);
*/
#include <stdio.h>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>

int main(){

    pid_t pid = fork();
    if(pid==0){
        //子进程
        int i = 0;
        for(i=0;i<5;i++){
            printf("child process\n");
            sleep(1);
        }
    }
    else if(pid>0){
        //父进程
        printf("parent process\n");
        sleep(2);
        printf("kill child process now\n");
        kill(pid,SIGINT);
    }
    return 0;
}
举报

相关推荐

0 条评论