Comment se connecter à faire une sortie sans mise en mémoire tampon de stdout et stderr

Je vais avoir un problème avec la journalisation pour la sortie d'une version automatique.

Le build est fait avec un Makefile et l'utilitaire makefile.

Le problème est que la production normale comme compilateur de ligne de commande aller à stdout et les erreurs de compilation aller vers stderr.

Je veux obtenir la sortie de la construire comme il le ferait s'affichent sur l'écran. Donc quelque chose comme:

(stdout) CC -c file.cpp
(stderr) Compile error at file.cpp line 232, blah blah blah
(stdout) CC -c file2.cpp

Ce que j'ai essayé (à partir d'un script ksh) est:

make-k > build.journal 2> build.journal

Présente les résultats dans un fichier journal, mais le problème est que les flux sont mises en mémoire tampon et donc le résultat dans le fichier journal est tout mélangé.

Je pouvais capturer la sortie de séparer les 2 fichiers journaux mais alors je n'ai aucune info sur la façon de les colle ensemble dans un seul fichier journal.

Est-il un moyen de désactiver la mise en mémoire tampon pour stdout et stderr dans ce cas?

OriginalL'auteur Jeroen Dirks | 2009-02-17