gaolu@gaolu-desktop:~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
gaolu@gaolu-desktop:~$
gaolu@gaolu-desktop:~$
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
{
pid_t pid;
int exit_code;
exit_code = (int)(rand()%256); //生成随机返回值<256以内
if(atoi(argv[1])%2)
{
printf("The child process %d receive a signal SIGKILL.\n",pid);
kill(pid,9); //向本进程发送SIGKILL信号中断
}
else
{
printf("The child process %d normally exit, exit code is %d.\n",pid,exit_code);
exit(exit_code); //以生成随机值为退出状态
}
}
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
{
pid_t pid,wait_pid;
int status;
int i;
{
printf("Usage: %s para1 para2 para3\n",argv[0]);
return 1;
}
{
if((pid=fork())==-1)
{
printf("Creat child process failed.\n");
return 1;
}
else if(pid==0)
{
execl("./kill","kill",argv[i],NULL);
else
{
printf("Creat child process ID: %d\n",pid); //打印本次创建的子进程ID
}
}
{
printf("Process ID: %d exit,exit_code is %d.\n",wait_pid,status);
}
}
gaolu@gaolu-desktop:~$ gcc -o kill systemcall2.c
gaolu@gaolu-desktop:~$ gcc -o file file.c
gaolu@gaolu-desktop:~$
gaolu@gaolu-desktop:~$ ./file 4 2 1 //参数4,2可以让子进程正常退出,1接收结束信号退出
Creat child process ID: 5889
Creat child process ID: 5890
Creat child process ID: 5891
The child process 5889 normally exit, exit code is 103.
Process ID: 5889 exit,exit_code is 26368.
The child process 5890 normally exit, exit code is 103.
Process ID: 5890 exit,exit_code is 26368.
The child process 5891 receive a signal SIGKILL.
Process ID: 5891 exit,exit_code is 9.
gaolu@gaolu-desktop:~$