O que define STDERR, STDOUT e STDIN de uma criança?

4

Se um programa executar fork() , o que define os fluxos padrão STDOUT , STDIN e STDERR ?

    
por Evan Carroll 12.12.2012 / 06:38

2 respostas

7

Stdin, stdout e stderr são herdados do processo pai. Cabe ao processo filho alterá-los para apontar para novos arquivos, se necessário.

Na página fork(2) man:

   *  The  child inherits copies of the parent's set of open file descrip‐
      tors.  Each file descriptor in the child refers  to  the  same  open
      file  description (see open(2)) as the corresponding file descriptor
      in the parent.
    
por 12.12.2012 / 06:42
0

Como Kyle Jones afirma, eles são propagados a partir do processo pai. Se você está perguntando como configurá-los em uma criança, você está procurando freopen() .

    
por 12.12.2012 / 06:52