繁体   English   中英

使用单个系统()调用在C中执行多个命令

[英]Using a Single system() Call to Execute Multiple Commands in C

在我正在研究的信息安全实验室中,我的任务是执行多个命令,只需调用“system()”(用C编写,在Fedora上运行)。 允许我通过system()执行多命令的语法是什么? (如果程序通过system()调用与OS交互,那么您可以通过在远程计算机上运行的程序执行任意命令。)

即:

char command[] = "????? \r\n"; 
system(command);

这取决于被调用以执行命令的shell,但通常大多数shell使用; 分离命令,所以这样的东西应该工作:

command1; command2; command3

[编辑]

正如@dicroce所提到的,你可以用&&代替; 这将在第一个返回非零值的命令处停止执行。 这可能是也可能不需要(并且某些命令在成功时可能返回非零)但是如果您尝试处理可能失败的命令,则可能不应该在system()调用中将多个命令串在一起,因为您没有以何种方式确定发生故障的位置。 在这种情况下,您最好的选择是一次执行一个命令,或者创建一个执行相应错误处理的shell脚本,然后调用它。

在命令之间使用&&。 它的优点是只要它们返回成功的错误代码,它就会继续执行命令。 例:

“cd / proc && cat cpuinfo”

一种可能性立即浮现在脑海中。 您可以将所有命令写入脚本,然后使用以下命令运行:

system ("cmd.exe /c \"x.cmd\"");

或者,现在我注意到你在Fedora上运行了:

system ("x.sh");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM