J'écris un éditeur de code simple pour le langage d'assemblage LC3, et j'ai rencontré un petit problème. L'assembleur LC3 génère des informations de base sur l'état de l'assemblage que j'essaie d'afficher dans mon programme après l'avoir lu dans le fichier journal.Comment rediriger stdout et stderr et conserver la commande?
Au départ, je tenté d'utiliser le système() pour appeler l'assembleur de LC3 et de rediriger stdout et stderr vers un fichier, comme ceci:
system("/pathto/lc3as 1> lc3.log 2>&1");
Il produit dans le fichier mais ne conserve pas l'ordre de la sortie de l'assembleur.
Je suis venu avec un travail laid qui préserve l'ordre de la sortie, mais implique beaucoup plus d'IO de fichier que je voudrais, et je ne suis pas sûr que cela fonctionnerait dans toutes les situations. Sur cette note, je me demande s'il existe une meilleure solution pour acheminer la sortie à mon programme qui préserve la commande.
Quel système d'exploitation? POSIX-like, Windows ou ..? –