父进程产生一系列子进程,每个子进程打印自己的PID然后退出,父进程最后打印PID
#include<stdio.h>
#include<stdlib.h>
#include <unistd.h>
//父进程产生一系列子进程,每个子进程打印自己的PID然后退出。要求父进程最后打印PID。
int main()
{int num = 5;int i;pid_t pid,ret;for(i=0;i<num;i++){pid = fork();if(pid==0 || pid==-1)//子进程或创建进程失败均退出,这里是关键所在{break;}}if(pid < 0){printf("error foek\n");exit(1);}if(pid == 0)//子进程{printf("子进程pid = %d,对应的父进程pid = %d\n",getpid(),getppid());sleep(1);exit(1);}if(pid > 0)//父进程{//阻塞等待任意子进程,回收子进程8kb物理内存wait(NULL);printf("父进程pid = %d\n",getpid());exit(1);}
}/*
$ ./a.out
子进程pid = 25489,对应的父进程pid = 25488
子进程pid = 25490,对应的父进程pid = 25488
子进程pid = 25493,对应的父进程pid = 25488
子进程pid = 25491,对应的父进程pid = 25488
子进程pid = 25492,对应的父进程pid = 25488
父进程pid = 25488
*/
父进程产生一系列子进程,每个子进程打印自己的PID然后退出,父进程最后打印PID相关推荐
- linux之父进程使用kill函数杀死子进程
父进程循环创建5个子进程,并且父进程杀死第三个创建的子进程. 代码:kill.c #include <stdlib.h> #include <stdio.h> #include ...
- 使用父子两个进程拷贝同一个文件,父进程拷贝前一半,子进程拷贝后一半。
#include <head.h> // 父子进程在宏观上同时执行,微观上实际是时间片轮询串行. //两个进程同时调用同一个拷贝函数进行拷贝 int get_file_len(const ...
- 创建一个子进程,子进程向无名管道中写入数据,父进程打印输出。
/*=============================================== * 文件名称:pipe.c * 创 建 者: * 创建日期:2022年0 ...
- linux子进程崩溃父进程如何得知并重启子进程,子进程崩溃父进程如何得知并重启子进程...
子进程崩溃父进程如何得知并重启子进程 发布时间:2010-11-30 16:00:14来源:红联作者:skywing 大家好,我有一个程序,主进程中fork出两个进程,子进程循环执行任务, 我想做一个 ...
- 父进程中getpid()值与子进程中getppid()值不相同的问题及解释
父进程中getpid()值与子进程中getppid()值不相同的问题及解释 使用fork()创建一个新的子进程,并调用getpid()与getppid()查看父子进程之间的pid的关系.示例代码如下: ...
- 如何在bash中等待多个子进程完成并在任何子进程以代码!= 0结尾时返回退出代码!= 0?
如何在bash脚本中等待从该脚本派生的多个子进程完成并返回退出代码!= 0,当任何子进程以代码!= 0结尾时? 简单脚本: #!/bin/bash for i in `seq 0 9`; dodoCa ...
- mysql进程异常_关于MySQL-Proxy子进程异常退出BUG修复
关于 MySQL-Proxy 子进程异常退出的问题,我已经在之前的博文中提到过: 相关的错误信息如下图所示: 经查阅11号信号为SIGSEGV,表示进程执行了一个无效的内存引用或发生段错误,从而导致子 ...
- Linux 如何杀死一个进程和它的所有子进程
原文地址:Killing a process and all of its descendants 原文作者:igor_sarcevic 译文出自:掘金翻译计划 本文永久链接:https://gith ...
- Linux进程控制:wait获取子进程退出状态 WIFEXITED和WIFSIGNALED用法
可以使用wait函数传出参数status来保存进程的退出状态. 常用宏函数分为日如下几组: 1. WIFEXITED(status) 若此值为非0 表明进程正常结束. 若上宏为真,此时可通过WEXIT ...
最新文章
- linux卸载minicom,ubuntu下minicom超级终端的使用方法
- DCMTK:将STL文件封装为DICOM文件
- PHP如何复制前端传递的json数据
- flink sql client读取hive时卡住
- 【编译】GCC与CMAKE的关系 MinGW32 和 MinGW-w64的关系
- C语言变量相关试题,C语言模拟试题
- iOS应用的游戏中心和排行榜
- Jeston Nano 2K分辨率解决
- iOS开发-集成阿里云实人认证
- 深度学习——Dual Regression Networks for Single Image Super-Resolution(DRN)
- 如何申请小程序与小程序支付
- 【系统分析与设计】前端eslint检查 + travis持续集成
- 我用Python逆向登录世界上最大的游戏平台,steam加密手段有多高明【内附源码】
- 投影仪应用软件安装电视家纯净版, 幸福指数飙升!
- [享学Eureka] 十九、远程通信模块:EurekaHttpClients工具快速构建ClusterResolver集群解析器
- AD BOM表导出
- 判断iPhoneX的基带是英特尔还是高通的
- LoadRunner中将中文转换为URL编码类型的方法
- R语言输出csv文件乱码
- NFT合约解析(2)——Ownable.sol——2021.5.10
热门文章
- linux 浏览器 画面撕裂,Cinnamon 4.0桌面环境保证快速,没有画面撕裂
- 惊!钉钉CEO离职创业跨境出海领域;中欧班列跑出新高度;浙江数字化步伐再加速…|洞悉跨境
- cocos2dx -- 学习笔记 利用UIButton制作虚拟按键
- 标准差、方差、协方差和互相关系数
- vb的while和do循环
- 使用shell遍历文件夹下的所有图片,并复制一定数量的到新建的子文件夹中
- Python的命令行参数解析
- java内存地址和哈希值_数据哈希值的计算和在table中的存储位置
- 摆脱学校机房老师的电脑控制(即摆脱控制软件的控制)【详细版】
- css字与字之间的间距