我怎么能用fork()编写一个c代码来创建一个树?

时间:2016-02-20 12:27:44

标签: c linux ubuntu fork

我如何使用fork()编写ac代码来创建以下进程,我必须使用这些函数:wait(0),getpid()和getppid()来打印每个进程的id和父进程id你创造。

this is the the tree that I want to describe it

#include<sys/types.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

int main()
{

printf("the process id %d" , getpid());

pid_t pid1,pid2,pid3;

pid1=fork();
pid2=fork();
pid3=fork();

if((pid2 == 0)&&(pid3 == 0)) 
  {
     if (pid1 !=0)
   fork();
  }

printf("the process id %d" , getpid());

return 0;

 }

2 个答案:

答案 0 :(得分:-2)

fork()创建一个子线程。

int main ( ) {
    fork();

    printf("Current Process id: %d", getpid());
    printf("Parent Process id: %d", getppid());

    fork();
}

这将显示如何在linux中使用C处理线程的示例。

答案 1 :(得分:-2)

请,请查看此代码

#include<sys/types.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

int main()
{

 printf("the process id %d" , getpid());

 pid_t pid1,pid2,pid3;

pid1=fork();

if (pid 1==0)
pid2=fork();
pid3=fork();

if((pid2 == 0)&&(pid3 == 0)) 
{
    if (pid1 !=0)
    fork();
}

 printf("the process id %d" , getpid());

return 0;

}