创建如图的进程:

#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创建子进程的更多相关文章

  1. Linux下利用fork()创建子进程并使父进程等待子进程结束

    int status; pid_t t = fork(); if(t){     waitpid(t, &status, 0); }else{     system("vi temp ...

  2. Linux fork创建子进程

    1.  pid_t fork(void); 功能:创建父子进程 参数:无 返回值:成功:在父进程中:返回值为子进程的PID 在子进程中:返回值为0 失败:-1 注意: 1)fork函数是用来创建进程的 ...

  3. 2.1 进程控制之fork创建子进程

    fork()函数 目标:熟悉fork创建一个和多个子进程子线程 函数原型:pid_t fork(void); 返回值:成功返回:① 父进程返回子进程的ID(非负) ②子进程返回 0 : 失败返回-1. ...

  4. 线程_互斥锁_Lock及fork创建子进程

    """ 创建锁 mutex = threading.Lock() 锁定 mutex.acquire([blocking]) 当blocking为True时,当前线程会阻塞 ...

  5. fork()创建子进程

    fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回,如果返回是0,则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid) 在fork()的调用处,整个父 ...

  6. Python 使用 os.fork() 创建子进程

    Linux 操作系统提供了一个 fork() 函数用来创建子进程,这个函数很特殊,调用一次,返回两次,因为操作系统是将当前的进程(父进程)复制了一份(子进程),然后分别在父进程和子进程内返回.子进程永 ...

  7. exec族函数详解及循环创建子进程

    前言:之前也知道exec族函数,但没有完全掌握,昨天又重新学习了一遍,基本完全掌握了,还有一些父子进程和循环创建子进程的问题,还要介绍一下环境变量,今天分享一下. 一.环境变量 先介绍下环境的概念和特 ...

  8. Nginx学习笔记(七) 创建子进程

    Nginx创建子进程 ngx_start_worker_processes位于Nginx_process_cycle.c中,主要的工作是创建子进程. 在Nginx中,master进程和worker进程 ...

  9. [转载]Python模块学习 ---- subprocess 创建子进程

    [转自]http://blog.sciencenet.cn/blog-600900-499638.html 最近,我们老大要我写一个守护者程序,对服务器进程进行守护.如果服务器不幸挂掉了,守护者能即时 ...

随机推荐

  1. Servlet 知识点总结(来自那些年的笔记)

    2018年04月15日 20:16:01 淮左白衣 阅读数:350   版权声明:转载请给出原文链接 https://blog.csdn.net/youngyouth/article/details/ ...

  2. leetcode141

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...

  3. VS2017打包设置

    本文为网络贴文,引用于:http://www.cnblogs.com/overstep/p/6942423.html 一.  安装打包插件: 安装打包插件:Microsoft Visual Studi ...

  4. Delphi中Chrome Chromium、Cef3学习笔记(三)

    原文   http://blog.csdn.net/xtfnpgy/article/details/46635871   Delphi与JS的交互问题: 一.执行简单的JS 上一篇已经讲过: chrm ...

  5. 【Noip模拟 20161005】运货

    问题描述 小ww开了一家快递公司,在nn个城市之间进行货物运输工作,一共雇了mm个快递员. 每个快递员性格很奇特,第ii号快递员只愿意将货物从城市sisi运送到titi(甚至不愿意将货物 从titi运 ...

  6. JAVA字符串类

    一.字符串类String1.String是一个类,位于java.lang包中2.创建一个字符串对象的2种方式: String 变量名=“值”; String 对象名=new String(“值”);3 ...

  7. 用 Python + itchat 写一个爬虫脚本每天定时给女朋友发微信暖心话

    https://github.com/sfyc23/EverydayWechat.git

  8. 解决HighChart开发遇到的2个问题

    需求很简单,显示一条24小时的变化曲线 写完代码效果是只有一条直线,连时间轴都没有 第1个错误  Highcharts error #12 当通过要绘制的点超过1000个时就会报这个错,我按分钟计算间 ...

  9. Flask最强攻略 - 跟DragonFire学Flask - 第三篇 Flask 中的 request 之 先知道有这么个东西

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...

  10. lambda正则化参数的大小影响

    当lambda的值很小时,其惩罚项值不大,还是会出现过拟合现象,当时lambda的值逐渐调大的时候,过拟合现象的程度越来越低,但是当labmda的值超过一个阈值时,就会出现欠拟合现象,因为其惩罚项太大 ...