убить процесс, учитывая его PID - PullRequest
0 голосов
/ 29 августа 2018

Я никогда раньше не программировал на C, но мне нужна программа на C, которая убивает процесс, учитывая его PID. Я знаю, что этот вопрос часто задавался, но я сталкиваюсь с ошибкой компиляции, которую я не понимаю. Вот код, созданный из вещей, которые я мог найти в Интернете:

#include<stdio.h>
#include<signal.h>

int main (int argc, char *argv[]){

    if (argc != 2 ) return 1;

    int pid = atoi (argv[1]);
    kill (pid, SIGINT);

    return 0;
}

И журналы:

-------------- Build: Debug in processKiller (compiler: GNU GCC Compiler)---------------

mingw32-gcc.exe -Wall -g  -c "D:\.Ce PC\Desktop\ws processKiller\processKiller\main.c" -o obj\Debug\main.o
D:\.Ce PC\Desktop\ws processKiller\processKiller\main.c: In function 'main':
D:\.Ce PC\Desktop\ws processKiller\processKiller\main.c:8:5: warning: implicit declaration of function 'atoi' [-Wimplicit-function-declaration]
     int pid = atoi (argv[1]);
     ^
D:\.Ce PC\Desktop\ws processKiller\processKiller\main.c:9:5: warning: implicit declaration of function 'kill' [-Wimplicit-function-declaration]
     kill (pid, SIGINT);
     ^
mingw32-g++.exe  -o bin\Debug\processKiller.exe obj\Debug\main.o   
obj\Debug\main.o: In function `main':
D:/.Ce PC/Desktop/ws processKiller/processKiller/main.c:9: undefined reference to `kill'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
2 error(s), 2 warning(s) (0 minute(s), 0 second(s))

Спасибо.

1 Ответ

0 голосов
/ 29 августа 2018

kill - это функция POSIX. Поскольку вы работаете в Windows, вам нужно будет найти способ убить процесс с помощью WINAPI. Это немного сложнее, но это поможет вам начать: Как эффективно убить процесс в C ++ (Win32)?

...