Czy istnieje sposób uruchamiania narzędzi wiersza polecenia, np. gzip
, do aplikacji C?Jak wykonać polecenie bash z C?
11
A
Odpowiedz
15
Zastosowanie system()
:
#include <stdlib.h>
int status = system("gzip foo");
Zobacz stronę man (man 3 system
) w celu uzyskania szczegółowych informacji na temat, jak go używać.
Nawiasem mówiąc, to pytanie jest już odpowiedź tutaj: How do I execute external program within C code in linux with arguments?
+3
Zobacz: [** Dlaczego warto unikać funkcji systemowej (c/C++ **) (http://stackoverflow.com/questions/19913446/why-to-avoid-system-function-in-c-c). Zamiast tego spójrz na rodzinę funkcji 'execl'. –
dlaczego nie wystarczy użyć biblioteki C do (de) kompresji (zlib)? – jayhendren
Jeśli uruchomisz go jako "polecenie bash", a la system(), robisz to źle. Bezpośrednie wywołanie z rodziną exec-syscall jest bardziej wydajne i mniej podatne na błędy. –