2011-01-21 29 views
14

Sistem program çağrılarını kullanarak c programında Linux komutunu çalıştırmaya çalışıyorum ancak terminalde çıkış veya hata günlüklerini dökmesini istemiyorum. Ne yapmalıyım? Bunu yapmanın başka bir yolu var mı?C programında Linux komutunu çalıştırın

cevap

23

Sistem() çağrısı komutu yürütmek için bir kabuk kullandıkça, stdout ve stderr'yi/dev/null adresine yönlendirebilirsiniz, ör.

system("ls -lh >/dev/null 2>&1"); 
+5

+1) 'ilave eklenmesi;' bir egzersiz okuyucu :) diğer yanıtlar farklı –

3

Size kodu gösterir. örneğin

Dene:

sistemi ("mi");

11

POPEN aynı yapabilir bir başka yöntemdir:

void get_popen() 
    FILE *pf; 
    char command[20]; 
    char data[512]; 

    // Execute a process listing 
    sprintf(command, "ps aux wwwf"); 

    // Setup our pipe for reading and execute our command. 
    pf = popen(command,"r"); 

    // Error handling 

    // Get the data from the process execution 
    fgets(data, 512 , pf); 

    // the data is now in 'data' 

    if (pclose(pf) != 0) 
     fprintf(stderr," Error: Failed to close command stream \n"); 

    return; 
} 
+0

için bırakılırsa, bu ayrıca programın çıktısını almayı sağlar. –

İlgili konular