Désactiver la sortie de la console à partir d’un programme externe (C ++)

Mon code (une application console simple) appelle un programme externe (également une application console). Ce programme génère beaucoup de choses sur la console, ce qui augmente considérablement le temps d’exécution lorsqu’il est exécuté en mode batch avec plus de 10 000 itérations.

J’ai essayé plusieurs façons de désactiver la sortie:

  1. La redirection de cout et cerr vers fout -> fonctionne évidemment sur la désactivation de couts dans le programme actuel / local, mais ne désactive rien d’un fichier .exe externe.

  2. Certaines sources ont suggéré système (“cls”), mais cela ne fait que vider l’écran une fois le texte affiché. Cela ajoute encore plus de temps.

  3. Une autre suggestion consistait à masquer la fenêtre de la console, mais le programme écrit toujours dans la console masquée, de sorte que le processus complet prend toujours plus ou moins le même temps.

Il semble que le seul moyen qui rest est de creuser à l’intérieur du code source du programme externe et de désactiver toutes les commandes d’écriture ou de le redirect vers dev / null ou quelque chose d’autre.

Existe-t-il un moyen de désactiver les commandes d’écriture sur un programme d’un programme sans avoir à modifier le code source et à recomstackr?

Merci beaucoup!

 system( "theExternalProgram >nul 2>nul" );