c - 根据 PID 杀死一个进程
问题描述
我以前从未用 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))
谢谢。
解决方案
kill
是一个 POSIX 函数。由于您使用的是 Windows,因此您需要了解如何使用 WINAPI 终止进程。这有点复杂,但这应该让你开始:如何有效地杀死 C++ (Win32) 中的进程?
推荐阅读
- groovy - 自动加载特定项目的 build.json 文件,无需硬编码
- apache - htaccess - 使用 .htaccess 将 http_referer 查询字符串参数附加到请求的 uri
- java - 这可以被认为是多态性吗?
- scons - 在 SCons Builder 的操作中调用函数
- terraform - 连接到 TFE 时出现 Terraform Destroy 错误
- javascript - HTML5 输入类型号 + oninput 正则表达式验证擦除字段按点
- c# - ActionLink 参数始终为空 - 即使使用自定义路由
- regex - 正则表达式认为我的第二种选择无效
- java - 交换期间的 CamelExecutionException
- d3.js - 如何根据对象中的数据动态地将图例添加到条形图中(d3)