Linux学习之系统编程篇:循环创建多个子进程练习
#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学习之系统编程篇:循环创建多个子进程练习相关推荐
- Linux学习之系统编程篇:创建线程函数
所有线程函数相同点: (1)函数调用成功返回 0,失败返回错误号(但注意:不能用 perror 打印). (2) 头文件:#include <pthread.h> 编译时候需要使用线程库, ...
- Linux学习之系统编程篇:创建匿名映射区(只适用于有血缘关系)
在之前的文章中我们讲过创建"有名映射区":即创建之前一定要先打开文件. 本处是不需要先创建文件. 方法:与创建"有名映射区"相比 第2参数(映射区长度):因为这 ...
- Linux学习之系统编程篇:编写一个守护进程
需求:写一个守护进程,每隔 2s 获取一次系统时间,将这个时间写入到磁盘文件 #include <stdio.h> #include <stdlib.h> #include & ...
- Linux学习之系统编程篇:利用 SIGCHLD 回收子进程
子进程死亡会给父进程发送 SIGCHLD 信号!(默认动作:父进程忽略该信号)此时父进程就可以捕捉该信号,利用回调函数使用 waitpid 回收子进程. #include <stdio.h> ...
- Linux学习之系统编程篇:利用管道进行进程间通信
这里我们先补充一个小知识: 父子进程使用 pipe 进行通信时fork 和 pipe 先后的顺序是先 pipe,后 fork,因为父进程先创建管道,再 fork 创建子进程,这样才能是父子进程共享一块 ...
- Linux学习之系统编程篇:互斥锁(pthread_mutex_init / lock / trylock / unlock / destroy)
一.主要函数介绍 (1)定义锁 : pthread_mutex_t mutex; //互斥锁 数据类pthread_mutex_t (2)初始化锁: int pthread_mutex_init(pt ...
- Linux学习之系统编程篇:线程同步的引出和思想
一.线程同步的引出 程序:父子线程交替数数 #include <stdio.h> #include <unistd.h> #include <string.h> # ...
- Linux学习之系统编程篇:进程回收(wait / waitpid)
一.wait wait 函数 :阻塞函数,使进程一直处于等待状态,直至进程死亡. (1)头文件: #include <sys/types.h> #include <sys/wait. ...
- Linux学习之系统编程篇:IPC 和管道的基本概念及管道的创建
一.IPC 概念 IPC: 进程间通信. 进程间通信的常见的 4 中方式: (1)管道 pipe fifo :最简单(但只能在有血缘关系下进行). (2)信号 signal : 属于系统的,所以系统开 ...
最新文章
- timesten 修改最大连接数
- “数学不好,干啥都不行!”资深程序员:别再瞎努力了!
- iOS架构-静态库.a打包之资源文件打包成bundle(4)
- nav 计算机网络_CTO下载-计算机网络课件(配套韩立刚老师课程).ppt
- Linux内存管理和分析vmalloc使用的地址范围
- thymeleaf获取url地址跳转时所带参数
- 北京豪宅市场调查:多项目集中放量使选择面加大
- linux扩大lvm_Linux下lvm在线扩容步骤
- 看斯皮尔伯格大爷,看政治与奥运
- 解决office 2013 新建PPT(幻灯片)为拉伸矩形问题
- 《C专家编程》阅读笔记
- 多媒体中控系统的发展及现状
- 微信小程序的appid
- python选取特定行_pandas实现选取特定索引的行
- 从零开始搭建个人静态简历网站
- ppt(office365)之起始页、目录页、结束页界面布局技巧
- 让mysql的自增id重新从1开始
- 51单片机 Proteus仿真 6个按键的简易电子琴
- 华北电力大学《随机过程·2020年冬》复习笔记
- qlv 格式转换为MP4