Come visualizzare l'output di un comando di sistema. Es:visualizzazione dell'output della chiamata system() in C++
int _tmain(int argc, _TCHAR* argv[]) {
system("set PATH=%PATH%;C:/Program Files (x86)/myFolder/bin");
system("cd C:/thisfolder/");
std::cin.get();
return 0;
}
quando si esegue il programma in Visual Studio mi dà una schermata nera e non riesco a vedere l'essere i comandi utilizzati. Ne ho bisogno, così posso vedere se ha funzionato o meno. Grazie!
Probabilmente un problema di reindirizzamento dell'output. La funzione 'system()' utilizza l'interprete dei comandi per eseguire la stringa argomento della funzione 'system()', quindi potrebbe essere che l'interprete dei comandi non stia ereditando lo standard in modo che l'output dal comando non vada alla console finestra. Un'altra cosa potrebbe essere che i comandi che stai usando non generano alcun output. prova un comando diverso come il comando 'echo', quindi fai qualcosa come' system ("echo this is output") '. –
Non sono sicuro che 'set'-ing (o' cd') con una chiamata a 'system' influenzerebbe la prossima chiamata a' system' (su POSIX e Linux, sono sicuro che non funziona. Conosco Windows). –
Hai preso in considerazione l'utilizzo di alcune API del sistema operativo (ad esempio [_chdir] (https://msdn.microsoft.com/en-us/library/bf7fwze1.aspx) ...) anziché chiamare 'system'? O usare qualche framework come [POCO] (http://pocoproject.org/), [Qt] (http://qt-project.org/), o forse Boost. –