为什么system()函数不起作用?

时间:2014-06-16 08:34:23

标签: c cmd system

据我所知,在cmd中,当我们要切换驱动器时,我们写“[drive]:”例如: 当我们想切换到D:\我们输入

D:

我试试这个并且有效。

但是现在,我想在我的C程序中应用这个过程,所以我使用着名的“系统”命令并输入:

system("D:");

之后我有一些代码,当我尝试执行它时,它会写

the specified path was not found.

所以我试着看看系统命令是否真的有效,我又添加了另一个系统命令:

system("chdir");

验证工作目录,当我执行它时,它会显示可执行文件的路径,这意味着system("D:");不起作用。

任何解决方案

1 个答案:

答案 0 :(得分:6)

可能是因为system()启动了cmd.exe的新实例,它运行您的命令然后退出。因此,它不会在调用之间保持状态,这与运行单个实例并以交互方式为其提供多个命令的方式不同。

cmd.exe的帮助文字暗示了解决这个问题的一种方法:

  

请注意,命令分隔符'&&'分隔的多个命令   如果被引号包围,则接受字符串。

因此,您应该能够运行"d: && chdir"之类的命令,在cmd.exe的单次调用中执行这两项操作。