2015-04-20 10 views
11

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?

+0

neden sadece (de) sıkıştırma (zlib) c kütüphanesini kullanmak? – jayhendren

+1

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. –

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. –