将system()调用的执行命令的输出复制到char数组

是否有可能在Linux上复制在system()函数上使用的命令的输出? 如果我跑步了

 #include <stdlib.h> int main(int argc,char *argv[]){ char date[8]; //eg, 20130421 yyyymmdd char time[4]; // eg, 0204 hhmm system("ntpdate"); return 0; } 

它输出:

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

有可能将输出复制到一个string? 如何将date和时间信息复制到一个字符数组,例如char *date ; char *time在C上的char *time

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