Я пытаюсь сделать регистратор для программы. По этой причине у меня есть второй дочерний процесс, который получает stdout родителя через канал и использует tee . Ниже приведен пример сильфона.
if (fork()>0){ //parent
close(1);
dup(pip[1]);
close(pip[0]);
char a[100]="";
while (1){
gets(a);
puts(a);
}
} else { //child
close(0);
dup(pip[0]);
close(pip[1]);
execlp("tee", "tee", NULL);
}
Это отлично работает. Дочерний печатает все, что я печатаю в родительском, используя трубу.
Однако возможно ли, чтобы родитель отправлял stdout при одновременной отправке в канал?