2013-04-21 3 views
2

Возможно ли копирование вывода команды, используемой в функции system(), в Linux? Например, если я бегукопировать результат выполнения команды вызовом system() в массив символов

#include <stdlib.h> 

int main(int argc,char *argv[]){ 
    char date[8]; //e.g., 20130421 yyyymmdd 
    char time[4]; // e.g., 0204 hhmm 
    system("ntpdate"); 
    return 0; 
} 

выводит:

21 Apr 02:12:56 ntpdate[32680]: no servers can be used, exiting

возможно скопировать вывод в строку? как я могу копировать информацию о дате и времени в массив символов, например. char *date; char *time на C?

ответ

5

system не разрешает такую ​​вещь, вы должны использовать popen("ntpdate", "r"), который возвращает FILE *, из которого вы можете прочитать выход команды.

Смежные вопросы