有没有办法让我通过我的C程序运行系统命令,例如日期,并将输出传递给char *日期,以便我以后可以使用它?我一直在尝试使用“系统”命令,但做系统(“日期”);立即打印出日期输出到标准输出。我想在我的程序中使用system或exec来获取这些数据。任何建议将不胜感激......
谢谢!
答案 0 :(得分:2)
看看popen()
。你用它打开一个FILE
指针,如下所示:
#include <stdio.h>
FILE *f = popen("date", "r");
然后您可以使用fread()
或fscanf()
从f
读取您选择的缓冲区。
答案 1 :(得分:1)
您可能需要popen()
它为你设置一切并做你想做的事
答案 2 :(得分:1)
您需要stdio.h
中声明的函数popen
。然后你可以像文件一样读取命令的输出。
答案 3 :(得分:1)
您可以使用以下代码段作为参考。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char *command="date";
char line[256];
if ((fp = popen(command, "r")) == NULL) {
perror("popen failed");
return -1;
}
while (fgets(line, sizeof(line), fp))
printf("%s", line);
pclose(fp);
return 0;
}