使用系统命令从windows下的ac程序改变目录

我有一个问题,我必须在C程序中运行命令提示符命令。 这是我做的

#include<stdio.h> #include<stdlib.h> int main(){ system("cd \Users"); system("Dir"); } 

问题是我想首先cd到Users中,然后执行命令Dir,其中当前程序输出的是它找不到指定的path,Dir在父进程目录(即程序源文件所在的位置)执行。

我想要做的实际任务就是想从C程序中的特定目录运行一个java文件。 该java文件在C:\ Users \ Abdullah \ pro中。 我的C程序的父目录是C:\ Users \ Cprog。 请告诉我如何做到这一点

你的程序有一些不正确的假设。 首先,“cd”和“dir”不是程序,而是内置在shell cmd.exe中的命令。 其次,我怀疑你根本不需要改变当前目录。

无论哪种方式,因为这是一个Windows系统,我会看看如何用CreateProcess()启动程序的例子 。

要更改当前目录,请查看CreateProcess()调用的lpCurrentDirectory参数 。

system()启动一个新的进程。 这个新的进程改变它的当前目录,然后结束。 程序进程的当前目录不会改变。

你想要chdir() (或_chdir() )。

对于Windows,也有这个SetCurrentDirectory()函数。

' cd '不是你要执行的单独的可执行文件。 通常'cd'是一个shell /命令的内置命令。 你不能用'system()'来执行'cd',并期​​望在你的程序中使它工作。 如果你想在你的程序中执行目录改变,你将不得不使用'chdir()'函数(或系统调用)。 查阅“chdir()”的手册页。

这应该工作:

 system("dir Users\\whatEverNextFolder > test.txt");