Я пытаюсь создать процесс 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;
}