1.我们首先要知道kill命令有几种格式:
kill pid ==> 默认 15
kill -9 pid ==> 强制关闭 9
kill -stop pid ==>挂起进程 19
后面的数字其实就是一些信号的宏定义,可以在/usr/include/bits/signum.h下面查询。
没有截全,可以自行查询。
根据命令格式,主函数中要保留两个参数的位置 ,所以定义成:
int main(int argc,char *argv[]);
思路:
1.判断参数是否够用,不够的话提示再次输入PID。
2.判断第二个参数是什么并对kill的功能实现。
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include <assert.h>
6
7 int main(int argc,char *argv[])
8 {
//1
9 if(argc < 2)
10 {
11 printf("please input process's pid again\n");
12 exit(0);
13 }
14 //默认的方式就是15
15 int sigtype = 15;
16 int i = 1;//kill标识在0号下表,所以从1开始即可
17 for(;i < argc;++i)
18 { //2
19 if(i == 1)
20 {
21 if(strncmp(argv[1],"-9",2) == 0)
22 {
23 sigtype = 9;
24 continue;
25 }
26 if(strncmp(argv[1],"-stop",5) == 0)
27 {
28 sigtype = 19;
29 continue;
30 }
31 }
32 int pid = 0;
33 sscanf(argv[i],"%d",&pid);
34 if(-1 == kill(pid,sigtype))//先执行 kill,再判断
35 {
36 perror("kill error\n");
37 }
38 }
39 exit(0);
40 }