2015-04-20 3 views
11

Gibt es eine Möglichkeit, Befehlszeilen-Dienstprogramme auszuführen, z. gzip, in eine C-App?Wie führe ich Bash-Befehle von C?

+0

warum nicht nur die C-Bibliothek verwendet für (de) Kompression (zlib)? – jayhendren

+1

Wenn Sie es als "Bash-Befehl", ein la System() ausführen, machen Sie es falsch. Der direkte Aufruf mit einem System-Syscall der exec-Familie ist effizienter und weniger fehleranfällig. –

Antwort

15

Verwendung system():

#include <stdlib.h> 
int status = system("gzip foo"); 

die man-Seite anzeigen (man 3 system) für weitere Informationen darüber, wie es zu benutzen.

By the way, diese Frage hat bereits eine Antwort hier: How do I execute external program within C code in linux with arguments?

+3

Siehe: [** Warum System() -Funktion in C/C++ ** vermeiden] (http://stackoverflow.com/questions/19913446/why-to-avoid-system-function-in-c-c). Betrachten Sie stattdessen die 'execl'-Familie von Funktionen. –

Verwandte Themen