Komut satırı yardımcı programlarını çalıştırmanın bir yolu var mı, örn. gzip
, bir C uygulamasına mı?Bash komutları C'den nasıl yürütülür?
11
A
cevap
15
Kullanım system()
:
#include <stdlib.h>
int status = system("gzip foo");
bunu nasıl kullanılacağı hakkında daha ayrıntılı bilgi için man sayfasını (man 3 system
) Bkz. Bu arada
, bu soru zaten burada bir cevabı var: How do I execute external program within C code in linux with arguments?
+3
Bakınız: [** Neden c/C++ 'da system() işlevinden kaçınmak için **) (http://stackoverflow.com/questions/19913446/why-to-avoid-system-function-in-c-c). Bunun yerine, 'execl' işlevleri ailesine bakın. –
neden sadece (de) sıkıştırma (zlib) c kütüphanesini kullanmak? – jayhendren
Bir "bash komutu" olarak çalıştırırsanız, bir la system(), yanlış yapıyorsunuz. Bir exec-family syscall ile doğrudan çağrı daha verimli ve hatalara daha az eğilimlidir. –