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

sve*_*ven 2 c linux datetime

是否可以复制system()Linux 上函数使用的命令的输出?例如,如果我跑

#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;
}
Run Code Online (Sandbox Code Playgroud)

它输出:

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

是否可以将输出复制到字符串?如何将日期和时间信息复制到char数组,例如char *date; char *time在C?

Mat*_*lia 5

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