Otwieranie zewnętrznych programów i czekanie na zamknięcie

0

Witam.
Czy jest jakaś możliwość by otworzyć zewnętrzny program, pokazywać jego pracę i zaczekać na jego zakończenie?
Chodzi mi o konsolowy program który cośtam robi w pewnym momencie otwiera mi jakby w swoim oknie i pokazując jego postępy jako swojego programu, czeka aż zakończy tamten działanie i kontynuuje swoją pracę??

//pozdrawiam

0

poczytaj o popen()

0

może mi ktoś przybliżyć tą funkcję? Bo niewiele mogę znaleźć.

0

Po pierwsze win czy -nix ?

0

linux

0

Otwierasz proces przez popen i czytasz jak plik. W ten sposób przeczytasz to co proces wypluwa na konsolę. Jak dojdziesz do EOF to program się skończył.

0

ee. A mógłbyś jakiś prosty przykład?

0
#include <cstdio>

int main() {
 FILE* fp = popen("dir", "r");
 char buff[100];
 fgets( buff, sizeof buff, fp );
 puts( buff );
 pclose( fp );
 return 0;
}

W windzie jest CreateProcess() ( lub jakoś tak ), ale czy popen() nie działa??

0

nie umiem sobie poradzić... Chciałbym uruchomić zewnętrzny program (wget) z odpowiednim parametrem (tak by ściągał określony plik z neta), pokazywał w jednym miejscu to co pokazuje uruchomiony program (pokazywał całe wyjście z wget, czyli np pasek postępu), czekał aż ten drugi program skończy działanie (wget ściągnie plik i się zamknie), i tyle :)

0

a system() wtedy nie wystarczy??

0

Dobra, ale to nie daje wyjścia programu uruchomionego tym poleceniem.

0

mi coś takiego działa:

system("wget -O test.jpg http://84.16.243.134/account/photo/027582,1");

powinno w test.jpg zapisać mój avatar i wyświetlić wszystko na std O.

0

Kuurde, rzeczywiście, wieeeelkie dzięki.

0

Jeszcze dodam ze pod windows dziala podobnie: http://msdn.microsoft.com/en-us/library/96ayss4b%28VS.71%29.aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1