C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。
来源:互联网 发布:中国海关贸易数据库 编辑:程序博客网 时间:2024/06/08 19:03
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
void killchild(int pid_child);
void killchild(int pid_child){
printf("killing child process \n");
//调用wait函数
int pidxx;
pidxx=wait(NULL);
printf("killed the child process, whose pid is %d \n",pidxx);
exit(0);
}
void killyourself(int ownid);
void killyourself(int ownid){
//printf("killing child process %d \n",pid_child);
printf("parent sent signal, child process killed itself \n");
exit(0);
}
int main(){
// 要捕捉的信号
(void) signal(SIGALRM,killchild);
int pid_child=0;
int pid = fork();
if(pid==-1){
perror("fork failed\n");
// exit(1);
exit(EXIT_FAILURE);
}
if(pid==0){
//子进程
pid_child=getpid();
//子进程也signal一个信号
(void) signal(SIGHUP,killyourself);
sleep(10);
kill(getppid(),SIGALRM);
}else{
//父进程
//等待
// pause();
sleep(6);
kill(pid_child,SIGHUP);
exit(0);
}
}
当父进程先结束时,会发送信号给子进程,子进程强制退出。(例如:父进程 sleep(6))
当子进程先结束时,会向父进程发出信号,结束进程。(例如:父进程 sleep(15))
如果写的有问题欢迎指出~
(注,文件名称命名错了semaphore是线程里的内容)
- C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。
- 1.写多进程,一个父进程,两个子进程,一个运行ls –l, 另一个暂停5s,父进程先阻塞等待第一个子进程的结束,然后用非阻塞等另一个进程退出,收集到第二个子进程结束的信息,父进程就返回。
- Linux父进程等待子进程结束
- linux的父进程向子进程发kill信号例子以及对子进程的状态进行判断
- 父进程 子进程
- 父进程子进程
- 等待子进程结束
- 子进程在复制父进程的信号处理方式
- 父进程与子进程间的信号通信
- 子进程在复制父进程的信号处理方式
- 父进程等待所有子进程结束后再结束
- 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
- 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
- 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
- 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
- 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
- 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
- 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
- java指定agent的参数
- 【solr基础教程之二】索引
- 自定义Alert
- 【solr专题之三】Solr常见异常
- 新学到的两个关键字IBInspectable / IBDesignable
- C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。
- 【solr专题之四】关于VelocityResponseWriter
- 黑马程序员——JAVA-IO
- 【solr专题之二】配置文件:solr.xml solrConfig.xml schema.xml
- 阿里云服务器安全设置
- 通过 bitbake 移植 qrencode 到嵌入式
- 注册测绘师学习笔记(四)
- 修改Linux中的用户名
- 【转载】 Searching过程粗略梳理