我有一个问题,我必须在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");