#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相关推荐

  1. linux之父进程使用kill函数杀死子进程

    父进程循环创建5个子进程,并且父进程杀死第三个创建的子进程. 代码:kill.c #include <stdlib.h> #include <stdio.h> #include ...

  2. 使用父子两个进程拷贝同一个文件,父进程拷贝前一半,子进程拷贝后一半。

    #include <head.h> // 父子进程在宏观上同时执行,微观上实际是时间片轮询串行. //两个进程同时调用同一个拷贝函数进行拷贝 int get_file_len(const ...

  3. 创建一个子进程,子进程向无名管道中写入数据,父进程打印输出。

    /*===============================================  *   文件名称:pipe.c  *   创 建 者:       *   创建日期:2022年0 ...

  4. linux子进程崩溃父进程如何得知并重启子进程,子进程崩溃父进程如何得知并重启子进程...

    子进程崩溃父进程如何得知并重启子进程 发布时间:2010-11-30 16:00:14来源:红联作者:skywing 大家好,我有一个程序,主进程中fork出两个进程,子进程循环执行任务, 我想做一个 ...

  5. 父进程中getpid()值与子进程中getppid()值不相同的问题及解释

    父进程中getpid()值与子进程中getppid()值不相同的问题及解释 使用fork()创建一个新的子进程,并调用getpid()与getppid()查看父子进程之间的pid的关系.示例代码如下: ...

  6. 如何在bash中等待多个子进程完成并在任何子进程以代码!= 0结尾时返回退出代码!= 0?

    如何在bash脚本中等待从该脚本派生的多个子进程完成并返回退出代码!= 0,当任何子进程以代码!= 0结尾时? 简单脚本: #!/bin/bash for i in `seq 0 9`; dodoCa ...

  7. mysql进程异常_关于MySQL-Proxy子进程异常退出BUG修复

    关于 MySQL-Proxy 子进程异常退出的问题,我已经在之前的博文中提到过: 相关的错误信息如下图所示: 经查阅11号信号为SIGSEGV,表示进程执行了一个无效的内存引用或发生段错误,从而导致子 ...

  8. Linux 如何杀死一个进程和它的所有子进程

    原文地址:Killing a process and all of its descendants 原文作者:igor_sarcevic 译文出自:掘金翻译计划 本文永久链接:https://gith ...

  9. Linux进程控制:wait获取子进程退出状态 WIFEXITED和WIFSIGNALED用法

    可以使用wait函数传出参数status来保存进程的退出状态. 常用宏函数分为日如下几组: 1. WIFEXITED(status) 若此值为非0 表明进程正常结束. 若上宏为真,此时可通过WEXIT ...

最新文章

  1. linux卸载minicom,ubuntu下minicom超级终端的使用方法
  2. DCMTK:将STL文件封装为DICOM文件
  3. PHP如何复制前端传递的json数据
  4. flink sql client读取hive时卡住
  5. 【编译】GCC与CMAKE的关系 MinGW32 和 MinGW-w64的关系
  6. C语言变量相关试题,C语言模拟试题
  7. iOS应用的游戏中心和排行榜
  8. Jeston Nano 2K分辨率解决
  9. iOS开发-集成阿里云实人认证
  10. 深度学习——Dual Regression Networks for Single Image Super-Resolution(DRN)
  11. 如何申请小程序与小程序支付
  12. 【系统分析与设计】前端eslint检查 + travis持续集成
  13. 我用Python逆向登录世界上最大的游戏平台,steam加密手段有多高明【内附源码】
  14. 投影仪应用软件安装电视家纯净版, 幸福指数飙升!
  15. [享学Eureka] 十九、远程通信模块:EurekaHttpClients工具快速构建ClusterResolver集群解析器
  16. AD BOM表导出
  17. 判断iPhoneX的基带是英特尔还是高通的
  18. LoadRunner中将中文转换为URL编码类型的方法
  19. R语言输出csv文件乱码
  20. NFT合约解析(2)——Ownable.sol——2021.5.10

热门文章

  1. linux 浏览器 画面撕裂,Cinnamon 4.0桌面环境保证快速,没有画面撕裂
  2. 惊!钉钉CEO离职创业跨境出海领域;中欧班列跑出新高度;浙江数字化步伐再加速…|洞悉跨境
  3. cocos2dx -- 学习笔记 利用UIButton制作虚拟按键
  4. 标准差、方差、协方差和互相关系数
  5. vb的while和do循环
  6. 使用shell遍历文件夹下的所有图片,并复制一定数量的到新建的子文件夹中
  7. Python的命令行参数解析
  8. java内存地址和哈希值_数据哈希值的计算和在table中的存储位置
  9. 摆脱学校机房老师的电脑控制(即摆脱控制软件的控制)【详细版】
  10. css字与字之间的间距