ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1456428 Топик полностью
Costic (16.08.2024 12:16, просмотров: 60) ответил Dingo на Можете подсказать, хоть и вопрос больше для stackoverflow: как под Linux сделать так, чтобы stdout дочернего и родительского процессов был одним и тем же? Догадываюсь, что может возникнуть каша, но это уже следом думать буду. Понял, что dup2() и pipe() использовать, но как их применить не соображу. Сейчас при запуске дочернего он захватывает stdout, и что писал родительский остаётся в буфере до завершения дочернего. Как сделать одновременно?
Там надо продумать что-то закрыть, а что-то оставить. IN одного будет OUT другого. 

попробовать этот пример

   pipe(pipero);  // pipe 1
   pipe(pipewo);  // pipe 2 
   // parent: read from pipero[0], write to pipewo[1]
   pipefd[0] = pipero[0];
   pipefd[1] = pipewo[1];
   if((pid=fork())==0){
   // child: read from pipewo[0], write to pipero[1]
      dup2(pipewo[0],0); 
      dup2(pipero[1],1);
      execlp("what-u-want","what-u-want", NULL);
   }
   else{
      ...
   }


https://www.opennet.ru/base/patch/dup2.txt.html