我必須創建四個流程,每個兒子都必須創建一個兒子並等待它完成。創建N個父母創建一個子女的流程鏈
PROCESS 0 --> PROCESS 1 --> PROCESS 2 --> PROCESS 3 --> PROCESS 4
怎麼辦呢?到目前爲止,我已經試過如下:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include <fcntl.h>
#define NUM_PROC 5
int main (void)
{
int pid;
int i;
int status;
for (i=0; i < NUM_PROC; i++)
{
if ((pid=fork()) <0)
{
printf("Error in forking\n");
exit(EXIT_FAILURE);
} else if (pid ==0) {
printf("Sono: %d, mio padre e: %d\n", getpid(), getppid());
pid = fork();
}
else {
printf("Sono: %d, mio padre e: %d\n", getpid(), getppid());
wait(&status);
}
}
exit(EXIT_SUCCESS);
}
所以,你希望別人做你的工作?當執行順序是單個執行時,有多個進程的想法是什麼。只是增加了創建過程的開銷... –
諾諾我不想讓人們做我的工作,我必須做它的鍛鍊,我只是無法找到一個可能的想法,我試着很多,但我無法管理類似的事情 –
你能詳細說明你需要什麼幫助嗎? (你知道如何創建一個過程嗎?你知道如何等待一個過程嗎?你知道如何數到四嗎?你知道如何結合這三個能力嗎?) – ruakh