通过system()调用char数组复制已执行命令的输出

时间:2013-04-21 00:26:13

标签: c linux datetime

是否可以复制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数组,例如char *date; C上的char *time

1 个答案:

答案 0 :(得分:5)

system不允许这样的事情,您必须使用popen("ntpdate", "r"),它返回FILE *,您可以从中读取命令输出。