我想使用 system() 函数打开一个在运行时给出名称的图像。对于固定名称,它可以工作,但是如果我传递另一个参数,因为它没有为两个参数定义,所以会出错。
我想要类似以下的东西,使用任何可以实现这一点的功能。
system("gthumb <file1>");
其中 file1 存储运行时给出的文件的名称。
谢谢!
你应该避免使用system()
调用。
无论如何,你必须在这里做的,首先是使用 sprintf() 计算完整的命令行。你必须做类似的事情:sprintf(string, "gthumb %s", file1);
然后,你打电话system(string);
您可以创建命令字符串,例如
char cmdbuf[128];
snprintf (cmdbuf, sizeof(cmdbuf), "githumb %s", path);
int res = system(cmdbuf);
path
但是您应该检查(或实施报价机制)的有效性;如果它包含; rm -rf $HOME
你会不开心。