我正在尝试从C程序向Linux命令行发送命令,有一部分我不知道该怎么做。
例如在我的C代码中我有
system("raspistill -o image.jpg");
我希望能够做的是在"图像"的末尾添加一个数字。并在每次程序运行时递增它,但是如何将变量n
传递给只查找system()
的{{1}}函数?
我尝试了这个,但它不起作用:
const char
我已经尝试过搜索这个并且没有找到任何关于如何添加变量的信息。抱歉,这个菜鸟问题。
答案 0 :(得分:2)
char fileName[80];
sprintf(fileName, "raspistill -o image%d.jpg",n);
system(filename);
答案 1 :(得分:0)
首先,String是一个char数组,所以声明(我想你知道,只是为了强调):
char command[32];
因此,简单的解决方案将是:
sprintf(command, "raspistill -o image%d.jpg", n);
然后致电system(command);
。这正是您所需要的。
编辑:
需要程序输出,请尝试popen
:
char command[32];
char data[1024];
sprintf(command, "raspistill -o image%d.jpg", n);
//Open the process with given 'command' for reading
FILE* file = popen(command, "r");
// do something with program output.
while (fgets(data, sizeof(data)-1, file) != NULL) {
printf("%s", data);
}
pclose(file);