阅读量:0
在C语言中,你可以使用terminate()
函数来终止一个进程
#include<stdio.h> #include <stdlib.h> #include<signal.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> void handler(int signum) { printf("Received signal %d, exiting...\n", signum); exit(0); } int main() { pid_t pid; int status; // 创建一个子进程 if ((pid = fork()) < 0) { perror("fork error"); exit(1); } // 子进程执行这里的代码 if (pid == 0) { // 设置信号处理器 signal(SIGTERM, handler); // 子进程无限循环,直到收到SIGTERM信号 while (1) { printf("Child process is running...\n"); sleep(1); } } // 父进程执行这里的代码 else { printf("Parent process created child process with PID %d\n", pid); sleep(5); // 向子进程发送SIGTERM信号 if (kill(pid, SIGTERM) < 0) { perror("kill error"); exit(1); } // 等待子进程结束 wait(&status); printf("Child process terminated with status %d\n", WEXITSTATUS(status)); } return 0; }
在这个示例中,我们首先创建了一个子进程。子进程会无限循环,直到收到SIGTERM
信号。我们为子进程设置了一个信号处理器,当收到SIGTERM
信号时,它会打印一条消息并退出。
父进程在创建子进程后,等待5秒钟,然后向子进程发送SIGTERM
信号。接着,父进程等待子进程结束,并打印子进程的退出状态。