Linux 父进程需要创建3个子进程,但不创建孙子进程

编程入门 行业动态 更新时间:2024-10-10 05:20:35

Linux 父<a href=https://www.elefans.com/category/jswz/34/1771450.html style=进程需要创建3个子进程,但不创建孙子进程"/>

Linux 父进程需要创建3个子进程,但不创建孙子进程

Linux 进程家族树 生成三个子进程不生成孙子进程

  • 1. 要求
  • 2. 分析
    • 2.1 getpid、getppid
    • 2.2 不让子进程再生成进程
  • 3. 代码
  • 4. 运行截图
  • 5. 绘制进程家族树

1. 要求

如果父进程需要创建3 子进程,但不创建孙子进程。请编写程序,并画出进程家族树。 (进程家庭树中填写进程 PID,使用 getpid, getppid)。

2. 分析

2.1 getpid、getppid

getpid是获取当前进程的ID号,getppid是获取当前进程的父进程的ID号。

2.2 不让子进程再生成进程

  • 换句话说就是只让父进程创建进程,所以使用一个判断语句:if (pid == getpid()) // 只能是父进程才能创建子进程,这里的pid应当为父进程ID。
  • 题目要求只要三个子进程,所以循环三次:for (i = 0; i < 3; ++i) // 生成三个进程

3. 代码

#include <stdio.h>
#include <unistd.h>int main(void)
{int pid = getpid(); // 获取当前进程 作为以下创建进程的父进程int i;for (i = 0; i < 3; ++i) // 生成三个进程{if (pid == getpid()) // 只能是父进程才能创建子进程{fork();}}printf("pid = %d, ppid = %d\n", getpid(), getppid());sleep(1); // 为防止父进程提前结束,睡眠等待,且这样输出工整
}

4. 运行截图


注:我是用ubuntu,内核版本5.3

5. 绘制进程家族树

更多推荐

Linux 父进程需要创建3个子进程,但不创建孙子进程

本文发布于:2024-02-25 14:44:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699321.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:进程   孙子   但不   个子   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!