Redirecte output fra børneproces til fil
Dette er et linux/unix spørgsmål, så jeg gider ikke høre noget om Borland Builder, Visual C++ eller i det hele taget noget om andre compilere end gcc.Jeg har et program, der starter et antal børneprocesser op med fork(). Alle processerne udskriver beskeder ved hjælp af printf og perror.
Alt ser ud til at virke når jeg starter programmet op uden redirection til fil:
programnavn 2>&1
- der bliver nu printet en masse linier i konsollen og alt er nydeligt.
Hvis jeg starter programmet i baggrunden med
programnavn 2>&1 &
virker det ligelesågodt, man kan se linierne rulle på skærmen.
Problemet opstår når jeg starter det op med redirection til en fil (logfil):
programnavn > etellerandet.log 2>&1
Der kommer til at stå INTET i logfilen!
Hvis jeg indsætter fflush(stdout); efter hver printf er der derimod ikke noget problem med at få skrevet til logfilen, heller ikke når der køres i baggrunden.
Såvidt jeg ved så SKAL det virke også UDEN fflush.
Hvad er årsagen til mit programs sære opførsel?
