根据其PID终止进程

时间:2018-08-29 19:27:25

标签: c pid kill

我以前从未用C编程过,但是我需要一个C程序,该程序根据给定的PID杀死一个进程。我知道这个问题问了很多,但是我遇到了我不理解的编译错误。这是用我可以在Internet上找到的东西构建的代码:

#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 :(得分:1)

kill是POSIX函数。由于您使用的是Windows,因此您将需要找到如何使用WINAPI杀死进程。这有点复杂,但这应该可以帮助您入门:How to effectively kill a process in C++ (Win32)?