C shell:kill进程语法
我正在尝试编写自己的C shell。我想知道如何在命令行中调用“kill”。比如说,C shell:kill进程语法,c,process,kill,C,Process,Kill,我正在尝试编写自己的C shell。我想知道如何在命令行中调用“kill”。比如说, shell> kill 2 shell: process 2 has been killed 第1行是用户输入“kill 2” 第2行是程序打印的已完成操作的消息 我知道我必须将pid作为我相信的参数,并发送SIGKILL信号。 使用类似 kill(pid, SIGKILL); 当用户在C实现中输入“kill 2”时,如何连接这个kill函数来响应?我想我很难将它连接到实现的命令行参数。
shell> kill 2
shell: process 2 has been killed
第1行是用户输入“kill 2”
第2行是程序打印的已完成操作的消息
我知道我必须将pid作为我相信的参数,并发送SIGKILL信号。
使用类似
kill(pid, SIGKILL);
当用户在C实现中输入“kill 2”时,如何连接这个kill函数来响应?我想我很难将它连接到实现的命令行参数。我可能需要strtok/atoi?
多谢各位 #包括
#include<stdio.h>
#include<sys/types.h>
#include<signal.h>
int main(int argc, char **argv)
{
if (argc < 3)
{
printf("usage: ./kill OPERATION(kill/cont) PID\n");
return -1;
}
if(strcmp(argv[1],"kill") == 0 )
{
printf("Kill:\n");
kill(atoi(argv[2]), SIGKILL);
}
else if(strcmp(argv[1],"cont") == 0)
{
printf("cont:\n");
kill(atoi(argv[2]), SIGCONT);
}
else
{
printf("Kill default:\n");
kill(atoi(argv[2]), SIGKILL);
}
return 0;
}
#包括
#包括
int main(int argc,字符**argv)
{
如果(argc<3)
{
printf(“用法:./kill操作(kill/cont)PID\n”);
返回-1;
}
if(strcmp(argv[1],“kill”)==0)
{
printf(“Kill:\n”);
kill(atoi(argv[2]),SIGKILL);
}
else if(strcmp(argv[1],“cont”)==0)
{
printf(“cont:\n”);
kill(atoi(argv[2]),SIGCONT);
}
其他的
{
printf(“终止默认值:\n”);
kill(atoi(argv[2]),SIGKILL);
}
返回0;
}
最好选择“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>");
}
#包括
#包括
#包括
#包括
int-pid;
如果((pid=getopt(argc,argv,“0123456789”)!=-1)
if(isdigit(pid)){
if(kill(pid,SIGKILL)=-1){
佩罗尔(“杀死:”);
出口(0);
}
}否则{
printf(“输入格式:kill”);
}
谢谢。如果我尝试实现另一个调用,例如'cont',作为kill(pid,SIGCONT),会发生什么?在第一个'if'语句中,我可以执行类似if(argv[1]==kill)的操作吗?我怎样才能确保它是正确的呢?所以你需要传递额外的字段作为命令行,你想要什么意味着你需要继续或者干脆杀死它。我很快更新了我的帖子。strok里面的“0123456789”部分指的是什么?是否是流程#?对不起,前面的逻辑是“0123456789”指流程的pid。