Почему внуков меня извиняют несколько раз? - PullRequest
1 голос
/ 18 февраля 2020

Я пытаюсь создать процесс PARENT CHILD 1 и CHILD 1.1 и CHILD 1.2 (в родительском ai прочитайте файл, затем я передаю текст дочернему элементу 1 с конвейерами, а дочерний 11 и child12 выводим некоторый указанный c текст, например upperCaseCounter и lowerCaseCounter)

Но когда я проверил это, я увидел, что внуки исполняются несколько раз, а родительские даже не исполняются.

Может ли кто-нибудь помочь с 2 исправлениями?
1) Выполнить процессы по одному разу каждый.
2) Выполнять процессы в таком порядке:
РОДИТЕЛЯ-> РЕБЕНОК 1-> РЕБЕНОК 1.1 -> РЕБЕНОК 1.2.

Код здесь:

#define BUFFSIZE 1024
int file;//global file variable
int n;

int main(int argc, char** argv)
{
   //parent reads from file all
   //child 1 get words (numerics discarded) 
   //child 1.1 printf lowercase letters
   //child 1.2 printf uppercase letters


   //create the processes here
   pid_t pid; 
   pid = fork();

   //check for error
   if( pid < 0 ) {
       printf("Process error\n");
   }



   if( pid > 0 ){
       //we are in parent process 
       printf("Parent process\n");
   } 

   if( pid == 0) {
       //we are in child 1 process
       printf("Child 1 process\n");


       //child 1.1
       pid_t pid_11;
       pid_11 = fork();

       //child 1.2
       pid_t pid_12;
       pid_12 = fork();

       if(pid_11 == 0){
           printf("Child 11\n");
       }

       if(pid_12 == 0) {
           printf("Child 12\n");
       }

   }

   return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...