Portál AbcLinuxu, 10. května 2025 02:32

Dotaz: C++ a volání systémového příkazu

Konqui avatar 18.3.2009 06:43 Konqui | skóre: 18 | blog: Konqui | Rožnov pod Radhoštěm
C++ a volání systémového příkazu
Přečteno: 266×
Odpovědět | Admin
Zdravím. Dělám menší aplikaci v QT4/C++ a potřeboval bych zavolat systémnový příkaz(konkrétně svn s parametrem) a dále pracovat s tím co příkaz vrátil. Sice to mohu řešit pomocí exec() nebo system() ale ten vrátí pouze jestli se to provedlo nebo ne.Sice to mohu přesměrovat do souboru a se souborem dále pracovat ale nejeví se mi to jako nejčistčí řešení. Existuje nějaká funkce/knihovna která by mi vrátila String nebo pole s tím co program vrátil na výstupu?

Děkuji
Open/save dialogy z GTK+ jsou nejkřiklavější ukázkou toho nejdebilnějšího software, co vůbec může existovat.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.3.2009 07:48 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: C++ a volání systémového příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takmer každá ukážka použitia volania pipe() demonštruje ako spusiť podproces a čítať jeho výstup.
18.3.2009 08:51 stps | skóre: 14
Rozbalit Rozbalit vše Re: C++ a volání systémového příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
A nebylo by rozumnejsi podivat se na libsvn*?
b42 avatar 18.3.2009 09:08 b42 | skóre: 12 | Ostrava/Brno
Rozbalit Rozbalit vše Re: C++ a volání systémového příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin

popen(3)

18.3.2009 10:23 l4m4
Rozbalit Rozbalit vše Re: C++ a volání systémového příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Správná odpověd je

a) Nespouštět svn, ale použít SVN C++ API http://rapidsvn.tigris.org/ I když pro triviální věci je to možná kanón na vrabce.

b) Když už používám Qt a potřebuji komunikovat s procesy přes roury, tak použít třídu QProcess, která má na toto metody.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.