在我正在从事的信息安全实验室中,我的任务是通过一次调用“system()”(用 C 语言编写,在 Fedora 上运行)执行多个命令。什么语法可以让我通过 system() 执行更多命令?(如果程序通过 system() 调用与操作系统交互,那么您可以通过在远程计算机上运行的程序执行任意命令。)
IE:
char command[] = "????? \r\n";
system(command);
这取决于调用 shell 来执行命令,但通常大多数 shell 用于;
分隔命令,所以这样的东西应该可以工作:
command1; command2; command3
[编辑]
正如@dicroce 提到的,您可以使用which&&
代替;
which 将在第一个返回非零值的命令处停止执行。这可能需要也可能不需要(并且某些命令可能在成功时返回非零值),但是如果您尝试处理可能失败的命令,您可能不应该在 system() 调用中将多个命令串在一起,因为您没有任何确定故障发生位置的方法。在这种情况下,您最好的选择是一次执行一个命令,或者创建一个 shell 脚本来执行适当的错误处理并调用它。
在命令之间使用 &&。它的优点是它只继续执行命令,只要它们返回成功的错误代码。例子:
“cd /proc && cat cpuinfo”
一种可能性立即浮现在脑海中。您可以将所有命令写入脚本,然后使用以下命令运行它:
system ("cmd.exe /c \"x.cmd\"");
或者,现在我注意到您正在 Fedora 上运行:
system ("x.sh");