我正在尝试编写自己的 C shell。我想知道如何在命令行中调用“kill”。例如,
shell> kill 2
shell: process 2 has been killed
第 1 行是用户输入“kill 2”
第 2 行是程序打印的消息,说明已完成的操作。
我知道我必须将 pid 作为我相信的参数并发送 SIGKILL 信号。 使用类似
kill(pid, SIGKILL);
当用户在 C 实现中输入“kill 2”时,如何连接此终止函数以做出响应?我想我很难将它连接到用于实现的命令行参数。我可能需要 strtok/atoi? 谢谢。
最佳答案
最好选择“getopt”,这可能看起来像是休闲,
#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <signal.h>
int pid;
if((pid = getopt(argc, argv, "0123456789")) != -1)
if(isdigit(pid)){
if(kill(pid, SIGKILL) == -1){
perror("KILL:");
exit(0);
}
}else{
printf("Input format: kill <pid>");
}
关于C壳: kill process syntax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845374/