我有一个问题,我必须从C程序内部运行命令提示符命令。这就是我做的事情
#include<stdio.h>
#include<stdlib.h>
int main(){
system("cd \Users");
system("Dir");
}
问题是我想首先cd进入用户然后执行命令Dir,其中当前程序输出它无法找到指定的路径并且Dir在父进程目录中执行,即程序源文件所在的位置。
我想要做的实际任务只是想从C程序内部的特定目录运行java文件。该java文件位于C:\ Users \ Abdullah \ pro中。我的C程序的父目录是C:\ Users \ Cprog。请告知我该怎么办
答案 0 :(得分:5)
system()
开始一个新流程。此新进程会更改其当前目录,然后结束。程序进程的当前目录不会更改。
您需要chdir()
(或_chdir()
)。
答案 1 :(得分:5)
您的程序有一些不正确的假设。首先,“cd”和“dir”不是程序,而是内置在shell中的命令cmd.exe。其次,我怀疑你根本不需要更改当前目录。
无论哪种方式,因为这是一个Windows系统,我会look at an example on how to start a program with CreateProcess()。
要更改当前目录,请查看CreateProcess()调用的lpCurrentDirectory parameter。
答案 2 :(得分:2)
仅适用于Windows,还有此SetCurrentDirectory()功能。
答案 3 :(得分:0)
' cd '不是您尝试执行的单独可执行文件。通常'cd'是shell /命令的内置命令。你不能用'system()'执行'cd',并希望它在你的程序中相应地工作。如果希望在程序内执行目录更改,则必须使用'chdir()'函数(或系统调用)。请参阅“chdir()”的手册页。
答案 4 :(得分:0)
这应该有效:
system("dir Users\\whatEverNextFolder > test.txt");