Program w C++ korzystaj

Potrzebujesz pomocy z C, C++, perl, python, itp.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Program w C++ korzystający z konsoli

Post autor: cloudbuster »

Witam.
Chciałbym napisać program, który wykorzystuje polecenia konsolowe, a wynik poleceń kopiuje do okna w interfejsie programu. Podejrzewam, że trzeba by użyć popen i pclose, ale nie bardzo rozumiem jak działa. Mogę prosić kogoś to podanie jakiegoś przykładu? Powiedzmy wejście do katalogu i skopiowanie listy folderów jakie się w nim znajdują.
Awatar użytkownika
pone13
Beginner
Posty: 337
Rejestracja: 30 listopada 2007, 20:59
Lokalizacja: Leszno

Post autor: pone13 »

Funkcja system

Kod: Zaznacz cały

man system
lub rodzina exec

Kod: Zaznacz cały

man exec
jeżeli nie korzystasz z wątków.
Z przekazaniem wyniku będzie trudniej, generalnie funkcja system zwróci ci tylko status wykonania polecenia nie wynik, więc będziesz mógł
co najwyżej sprawdzić czy polecenie wykonało się poprawnie czy nie.
Mógłbyś też napisać szerzej jakie polecenia chcesz wykonywać, ponieważ wiele z nich ma swoje odpowiedniki w
funkcjach systemowych C, które wywołasz bezpośrednio z programu bez narzutu związanego z
tworzeniem nowego procesu w przypadku wywołania system.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post autor: cloudbuster »

Chciałbym odebrać smsa z użyciem programu gnokii. Wydając polecenie, dostaję pobranego smsa.

Więc może można by wyeksportować wynik z konsoli do txt i wtedy go odtworzyć już moim programem?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post autor: Rafal_F »

popen i pclose mogą zadziałać, sprawdź drugi przykład w tym linku: http://www.linuxpl.org/LPG/node11.html

Co do eksportu to możesz przekierować standardowe wyjście do pliku:

Kod: Zaznacz cały

polecenie > plik
Tworzy nowy plik.

Kod: Zaznacz cały

polecenie >> plik
Tworzy nowy, lub nadpisuje już istniejący.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post autor: cloudbuster »

Dobrze, spróbuję, dziękuję.
ODPOWIEDZ