Jak uruchomić aplikację i przechwycić wyjście przez stdout i może stderr?uruchomienie aplikacji, przechwytywanie stdout i stderr w C++
Piszę zautomatyzowany system kompilacji i potrzebuję przechwycić dane wyjściowe do analizy. Chciałbym zaktualizować repozytorium svn i pobrać numer wersji, aby móc przenieść pliki w autobuild/revNumber /, jeśli się powiedzie. Chciałbym również zbudować przy użyciu make i przesłać tekst kompilacji na mój serwer, aby wszyscy zobaczyli ostrzeżenia i błędy w nieudanej kompilacji.
Nie mogę znaleźć funkcji system()
, ale znalazłem funkcję CreateProcess()
na MSDN. Jestem w stanie uruchomić to, czego potrzebuję, ale nie mam pojęcia, jak uchwycić stderr i stdout. Zauważam, że proces uruchamia się osobno, chyba że ustawię punkt przerwania i będę wyłączał moją aplikację, a następnie zachowa cały tekst w oknie mojej aplikacji. Chciałbym również poczekać, aż wszystkie procesy zostaną zakończone, a następnie przeskanować dane, które zostały wykonane, aby wykonać dodatkowe operacje, których potrzebuję. Jak mogę to zrobić?
Wierzę, że nazwa "&" znaków/glifów to znak ampersand. –
Zgadzam się: ale ja odnosiłem się do wszystkich "2> i 1" jako "hieroglifów" (co, z łatwością daję, jest niewłaściwym użyciem tego terminu). –
Myślę, że byłoby to trochę bardziej jasne, gdybyś odniósł się do "2> i 1" jako "przekierowania" zamiast "heiroglifu". Ktoś, kto nie jest zaznajomiony z egipskim językoznawstwem, idzie i szuka terminu na wikipedii, może się bardzo zdezorientować. :) –