#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{int num = 5;pid_t pid;int i;for(i = 0; i < num; i++){pid = fork(); // 父进程创建子进程if(pid == 0) // 特别注意:必须要这个条件判断,否则子进程会继续创建子进程{break; // 子进程跳出循环,避免它再次fork,出现孙子进程}}// 判断是第几个孩子 子进程的pid 父进程的pid // 因为子进程会被break出循环if(i < 5) {printf("child_%d pid = %d ppid = %d\n", i+1, getpid(), getppid());}// 父进程if(i == num){sleep(1); // 控制,使父进程最后输出printf("parent pid = %d\n", getpid());}return 0;
}

结果为:

Linux学习之系统编程篇:循环创建多个子进程练习相关推荐

  1. Linux学习之系统编程篇:创建线程函数

    所有线程函数相同点: (1)函数调用成功返回 0,失败返回错误号(但注意:不能用 perror 打印). (2) 头文件:#include <pthread.h> 编译时候需要使用线程库, ...

  2. Linux学习之系统编程篇:创建匿名映射区(只适用于有血缘关系)

    在之前的文章中我们讲过创建"有名映射区":即创建之前一定要先打开文件. 本处是不需要先创建文件. 方法:与创建"有名映射区"相比 第2参数(映射区长度):因为这 ...

  3. Linux学习之系统编程篇:编写一个守护进程

    需求:写一个守护进程,每隔 2s 获取一次系统时间,将这个时间写入到磁盘文件 #include <stdio.h> #include <stdlib.h> #include & ...

  4. Linux学习之系统编程篇:利用 SIGCHLD 回收子进程

    子进程死亡会给父进程发送 SIGCHLD 信号!(默认动作:父进程忽略该信号)此时父进程就可以捕捉该信号,利用回调函数使用 waitpid 回收子进程. #include <stdio.h> ...

  5. Linux学习之系统编程篇:利用管道进行进程间通信

    这里我们先补充一个小知识: 父子进程使用 pipe 进行通信时fork 和 pipe 先后的顺序是先 pipe,后 fork,因为父进程先创建管道,再 fork 创建子进程,这样才能是父子进程共享一块 ...

  6. Linux学习之系统编程篇:互斥锁(pthread_mutex_init / lock / trylock / unlock / destroy)

    一.主要函数介绍 (1)定义锁 : pthread_mutex_t mutex; //互斥锁 数据类pthread_mutex_t (2)初始化锁: int pthread_mutex_init(pt ...

  7. Linux学习之系统编程篇:线程同步的引出和思想

    一.线程同步的引出 程序:父子线程交替数数 #include <stdio.h> #include <unistd.h> #include <string.h> # ...

  8. Linux学习之系统编程篇:进程回收(wait / waitpid)

    一.wait wait 函数 :阻塞函数,使进程一直处于等待状态,直至进程死亡. (1)头文件: #include <sys/types.h> #include <sys/wait. ...

  9. Linux学习之系统编程篇:IPC 和管道的基本概念及管道的创建

    一.IPC 概念 IPC: 进程间通信. 进程间通信的常见的 4 中方式: (1)管道 pipe fifo :最简单(但只能在有血缘关系下进行). (2)信号 signal : 属于系统的,所以系统开 ...

最新文章

  1. timesten 修改最大连接数
  2. “数学不好,干啥都不行!”资深程序员:别再瞎努力了!
  3. iOS架构-静态库.a打包之资源文件打包成bundle(4)
  4. nav 计算机网络_CTO下载-计算机网络课件(配套韩立刚老师课程).ppt
  5. Linux内存管理和分析vmalloc使用的地址范围
  6. thymeleaf获取url地址跳转时所带参数
  7. 北京豪宅市场调查:多项目集中放量使选择面加大
  8. linux扩大lvm_Linux下lvm在线扩容步骤
  9. 看斯皮尔伯格大爷,看政治与奥运
  10. 解决office 2013 新建PPT(幻灯片)为拉伸矩形问题
  11. 《C专家编程》阅读笔记
  12. 多媒体中控系统的发展及现状
  13. 微信小程序的appid
  14. python选取特定行_pandas实现选取特定索引的行
  15. 从零开始搭建个人静态简历网站
  16. ppt(office365)之起始页、目录页、结束页界面布局技巧
  17. 让mysql的自增id重新从1开始
  18. 51单片机 Proteus仿真 6个按键的简易电子琴
  19. 华北电力大学《随机过程·2020年冬》复习笔记
  20. qlv 格式转换为MP4

热门文章

  1. Prompt-based Language Models:模版增强语言模型小结
  2. 岗位内推 | 微软亚洲研究院智能多媒体组招聘实习生
  3. 多源迁移学习相关研究回顾
  4. DeepLabv3+:语义分割领域的新高峰
  5. 点在多边形内外的判断【计算几何】
  6. 算法竞赛入门与进阶 (四)二分
  7. javaMail操作QQ邮箱发送邮箱 Demo
  8. IDEA主题设置(字体颜色背景)
  9. 云服务器Linux jdk安装详解(centos8)
  10. springboot 实现微信小程序授权并解密手机号