cours/unix primitive kill.md
Oscar Plaisant 602a41e7f8 update
2024-12-25 22:30:24 +01:00

1.1 KiB

up:: C primitives système title:: "tuer un processus (envoyer un signal)" #s/informatique


[!info] Tester si un processus existe On peut utiliser kill(<pid>, 0) (une valeur 0 pour le signal) pour tester si le processus de PID <pid> existe

#include<stdio.h> // pour printf
#include<stdlib.h> // pour atoi
#include<signal.h> // pour kill

int main(int argc, char **argv) {
    printf("%d\n", argc);
    if (argc < 2) {
        printf("Needs at least one argument");
        return -1;
    } else if (argc == 2) {
        int to_kill = atoi(argv[1]);
        printf("killing process: pid=%d\n", to_kill);
        kill(to_kill, 15);
        printf("[done]\n");
    } else if (argc == 3) {
        int to_kill = atoi(argv[1]);
        int signal = atoi(argv[2]);
        printf("killing process: pid=%d, sending signal %d\n", to_kill, signal);
        kill(to_kill, signal);
        printf("[done]\n");
    }

}