Kartik Napisano Grudzień 24, 2008 Zgłoszenie Share Napisano Grudzień 24, 2008 Hej, Mam program, których wykonuje rozległe w czasie obliczenia wypisując na bieżąco ich stan i postęp. Chciałbym móc sczytywać jego output innym programem i na bieżąco je analizować i gdzieś tam zapisywać. Problem polega na tym ze gdy używam funkcji popen() dostęp do outputu mam dopiero po zakończeniu pracy programu (generującego sczytywany output). Czyli równie dobrze mógłbym sobie go przekierować do pliku z poziomu basha za pomocą >> i na to samo by wyszło (prawie). Mam więc pytanie jak sczytywać output na bieżąco? Pozdrawiam i życzę spokojnych i udanych Świąt. Kartik Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Grudzień 24, 2008 Zgłoszenie Share Napisano Grudzień 24, 2008 Nie jestem programistą, ale czy tego przy pomocy cin, cout nie można przypadkiem zrobić? Przynajmniej jesli chodzi o C++. W C jest o ile wiem getchar i putchar . Jeśli jest "coś" co wypisuje na standardowe wyjście, to chyba nie problem to standardowe wyjście odczytwać na bieżąco? Czy ja nie rozumiem problemu czy komuś się lekcji nie chce odrabiać w Święta? → http://rtfm.killfile.pl/#praca_domowa Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Grudzień 24, 2008 Zgłoszenie Share Napisano Grudzień 24, 2008 1. Zawsze można użyć pliku jako pośrednika i otwierać/zamykać go w trakcie wykonywania programu. Jeśli masz dużo danych to plik jest dobrym pomysłem. 2. Najlepiej jakby program miał gotowe funkcje w C++ jak np. Octave #include <octave/oct.h> i bajka. A samemu to np. wpisz w google "c++ output gnuplot", będziesz miał przykład jak to zrobić. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Kartik Napisano Grudzień 24, 2008 Autor Zgłoszenie Share Napisano Grudzień 24, 2008 Dzięki za podpowiedzi. Problem w tym, że program generujący output nie jest moim programem i ma zamknięty kod. Nie mogę go zmusić żeby generował wyniki na bieżąco do pliku. Jestem skazany na przechwytywanie outputu tylko nie wiem jak to "na bieżąco" zrobić. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Grudzień 24, 2008 Zgłoszenie Share Napisano Grudzień 24, 2008 Może coś w stylu ./program > plik a potem ten plik parsować? Jeżeli dobrze pamiętam, pojedynczy znak > za każdym razem nadpisze ten plik, więc powinnien w nim być tylko ten wynik bieżącego obliczenia. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Grudzień 24, 2008 Zgłoszenie Share Napisano Grudzień 24, 2008 A może wykorzystać podstawową własność linuksa - przetwarzanie potokowe. Wyjście tego zamkniętego programu przez potok stanie się wejściem Twojego programu Dokładniej mam na myśli cos takiego program_o zamknietym_kodzie | Twój_program_odczytujący_i_analizujący_strumień Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się