首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用一个system()调用在C++中执行多个命令

使用一个system()调用在C++中执行多个命令
EN

Stack Overflow用户
提问于 2008-10-29 02:21:41
回答 3查看 23.4K关注 0票数 8

在我正在从事的一个信息安全实验室中,我的任务是通过一个对"system()“(用C编写,在Fedora上运行)的调用来执行多个命令。允许我通过system()执行更多命令的语法是什么?(其思想是,如果远程计算机上运行的程序通过system()调用与操作系统交互,则可以通过该程序执行任意命令。)

即:

代码语言:javascript
复制
char command[] = "????? \r\n"; 
system(command);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-29 02:27:30

这取决于被调用来执行命令的shell,但通常情况下,大多数shell使用;来分隔命令,因此应该可以使用下面这样的代码:

代码语言:javascript
复制
command1; command2; command3

编辑

正如@dicroce提到的,您可以使用&&而不是;,后者将在第一个返回非零值的命令处停止执行。这可能是我们想要的,也可能不是(有些命令可能在成功时返回非零值),但是如果您正在尝试处理可能失败的命令,那么您可能不应该在system()调用中将多个命令串在一起,因为您无法确定失败发生在哪里。在这种情况下,最好的办法是一次执行一个命令,或者创建一个执行适当错误处理的shell脚本并调用它。

票数 15
EN

Stack Overflow用户

发布于 2008-10-29 02:47:13

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

"cd /proc && cat cpuinfo“

票数 8
EN

Stack Overflow用户

发布于 2008-10-29 02:28:01

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

代码语言:javascript
复制
system ("cmd.exe /c \"x.cmd\"");

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

代码语言:javascript
复制
system ("x.sh");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/245600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档