-1

我想使用 system() 函数打开一个在运行时给出名称的图像。对于固定名称,它可以工作,但是如果我传递另一个参数,因为它没有为两个参数定义,所以会出错。

我想要类似以下的东西,使用任何可以实现这一点的功能。

system("gthumb <file1>");

其中 file1 存储运行时给出的文件的名称。

谢谢!

4

2 回答 2

2

你应该避免使用system()调用。

无论如何,你必须在这里做的,首先是使用 sprintf() 计算完整的命令行。你必须做类似的事情:sprintf(string, "gthumb %s", file1);然后,你打电话system(string);

于 2013-01-28T06:40:24.960 回答
1

您可以创建命令字符串,例如

  char cmdbuf[128];
  snprintf (cmdbuf, sizeof(cmdbuf), "githumb %s", path);
  int res = system(cmdbuf);

path但是您应该检查(或实施报价机制)的有效性;如果它包含; rm -rf $HOME 你会不开心。

于 2013-01-28T06:41:08.300 回答