в трубе scanf не работает родительский процесс - PullRequest
0 голосов
/ 15 октября 2019

В этой программе не работает scanf. Элемент управления переходит к потомку, а затем он выполняет scanf, но на самом деле я хочу передать fileName от родителя к потомку, но родитель не выполняет scanf. и управление напрямую переходит к дочернему процессу

int Parent_Child[2];
int Child_Parent[2];
char FileName_P[50];
char FileName_C[50];

pipe(Child_Parent);
pipe(Parent_Child);

if(fork()> 0)
{
    printf("\n\n***************Parent***************");
    close(Parent_Child[Read]);
    printf("\n\n Enter FileName :  ");
    scanf("%s" , FileName_P);

    write(Parent_Child[Write] , FileName_P , strlen(FileName_P));
    close(Parent_Child[Write]);
     wait(NULL);

}
else
{

    printf("\n\n***************Child***************");
    close(Parent_Child[Write]);

    read(Parent_Child[Read] , FileName_C , strlen(FileName_P));

    close(Parent_Child[Read]);

    printf("\n\n Child got the File   %s "  , FileName_C);

}
...