利用fork创建子进程

创建如图的进程:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<wait.h> int main()
{
int pid=fork();//创建子进程 if(pid==)
{ printf("D:%d\t %d\n",getppid(),getpid());return ;//子进程结束
} int pid2=fork();//创建子进程
if(pid2==)
{
printf("C:%d\t %d\n",getppid(),getpid());waitpid(pid2,NULL,);return ;//子进程结束
}
int pid3=fork();
if(pid3==)//创建子进程
{
printf("B:%d\t %d\n",getppid(),getpid());return ;//子进程结束 }
printf("父进程id 当前进程id\n");
printf("A:%d\t %d\n",getppid(),getpid());
waitpid(pid,NULL,);waitpid(pid2,NULL,);waitpid(pid3,NULL,);//等待子进程结束;
return ;
}
结果如下:
父进程id 当前进程id
A:
D:
C:
B:

创建如图的进程:
#include<stdio.h>
#include<unistd.h>
#include<wait.h>
#include<stdlib.h>
int main()
{ int pid=fork();int pid3;
if(pid==)
{
printf("C:%d\t %d\n",getppid(),getpid());return ;
}
int pid2=fork();
if(pid2==)
{
pid3=fork();
if (pid3==)
{
printf("D:%d\t %d\n",getppid(),getpid());return ;
}
else
{
printf("B:%d\t %d\n",getppid(),getpid());return ;
}
} printf("父进程id 当前进程id\n");
printf("A:%d\t %d\n",getppid(),getpid());
waitpid(pid,NULL,);waitpid(pid2,NULL,);waitpid(pid3,NULL,);
return ; }
结果如下:
父进程id 当前进程id
A:
C:
B:
D:
利用fork创建子进程的更多相关文章
- Linux下利用fork()创建子进程并使父进程等待子进程结束
int status; pid_t t = fork(); if(t){ waitpid(t, &status, 0); }else{ system("vi temp ...
- Linux fork创建子进程
1. pid_t fork(void); 功能:创建父子进程 参数:无 返回值:成功:在父进程中:返回值为子进程的PID 在子进程中:返回值为0 失败:-1 注意: 1)fork函数是用来创建进程的 ...
- 2.1 进程控制之fork创建子进程
fork()函数 目标:熟悉fork创建一个和多个子进程子线程 函数原型:pid_t fork(void); 返回值:成功返回:① 父进程返回子进程的ID(非负) ②子进程返回 0 : 失败返回-1. ...
- 线程_互斥锁_Lock及fork创建子进程
""" 创建锁 mutex = threading.Lock() 锁定 mutex.acquire([blocking]) 当blocking为True时,当前线程会阻塞 ...
- fork()创建子进程
fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回,如果返回是0,则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid) 在fork()的调用处,整个父 ...
- Python 使用 os.fork() 创建子进程
Linux 操作系统提供了一个 fork() 函数用来创建子进程,这个函数很特殊,调用一次,返回两次,因为操作系统是将当前的进程(父进程)复制了一份(子进程),然后分别在父进程和子进程内返回.子进程永 ...
- exec族函数详解及循环创建子进程
前言:之前也知道exec族函数,但没有完全掌握,昨天又重新学习了一遍,基本完全掌握了,还有一些父子进程和循环创建子进程的问题,还要介绍一下环境变量,今天分享一下. 一.环境变量 先介绍下环境的概念和特 ...
- Nginx学习笔记(七) 创建子进程
Nginx创建子进程 ngx_start_worker_processes位于Nginx_process_cycle.c中,主要的工作是创建子进程. 在Nginx中,master进程和worker进程 ...
- [转载]Python模块学习 ---- subprocess 创建子进程
[转自]http://blog.sciencenet.cn/blog-600900-499638.html 最近,我们老大要我写一个守护者程序,对服务器进程进行守护.如果服务器不幸挂掉了,守护者能即时 ...
随机推荐
- 阿里云 配置ssl 在nginx上
写给自己的备忘录: 很乱 如果你也是 配置nginx ssl 可以给我留言 ,我是为了 捣鼓微信小程序后台 需要https 阿里云有免费一年的 ssl服务 链接 https://www.aliyun. ...
- leetcode981
考虑线性的搜索会超时,所以用二叉搜索来解决,代码如下: class TimeMap: def __init__(self): self.ST = dict() def set(self, key: ' ...
- ES6原生Class
es5 之前定义构造函数的方法 // 先定义一个函数,强行叫它构造函数,大写的P也不是必须的,只是约定俗成 function Point(x, y) { this.x = x; // 构造函数的属性都 ...
- MySql:SELECT 语句(一)基本查询
1.检索单个列 语句:SELECT col FROM tablename; 2.检索多个列 语句:SELECT col1, col2 FROM tablename; 3.检索所有列 使用 * 通配符. ...
- (转)Detect it Easy(壳侦测工具)使用方法介绍
http://www.ucbug.com/jiaocheng/129805.html Detect it Easy是一个多功能的PE-DIY工具,主要用于壳侦测.功能正日益完善,是不可多得的破解利器! ...
- SSM商城项目(八)
1. 学习计划 1.solr集群搭建 2.使用solrj管理solr集群 3.把搜索功能切换到集群版 4.添加商品同步到索引库 2. 什么是SolrCloud SolrCloud(solr 云 ...
- 最新WordConut
一.代码地址:https://gitee.com/cainiaoY/WordCount 二.项目分析:代码根据实现的功能不同分为两个模块,一个wcFuctiong类,一个wcTest类,其中wcFuc ...
- Windows驱动开发调试工具
[开发工具] VS2012 [调试工具] Windbg:和VM配合实现双机联合调试,完成双机调试功能,可以结合<软件调试>这本书对Windbg有较为深入的认识. DebugView: 可以 ...
- [leetcode]254. Factor Combinations因式组合
Numbers can be regarded as product of its factors. For example, 8 = 2 x 2 x 2; = 2 x 4. Write a func ...
- css3回顾 checkbox
<div class="checkBox"> <input type="checkbox" id="check1"> ...