有没有办法用C语言更改目录?

有没有办法用C语言更改目录?,c,directory,executable,C,Directory,Executable,是否有任何方法可以通过执行C程序来更改到任何目录?chdir()函数。有关更多信息,请使用manchdir是,函数。好的,用于更改当前目录的POSIX命令是: chdir(const char*path); 请参阅。#包括“stdafx.h” #包括 #包括 #包括 int main(int argc,char*argv[]) { 系统(“C:\\windows\\notepad.exe”); chdir(“C:\\windows\\desktop”); 返回0; } 根据根据您的操作系统,

是否有任何方法可以通过执行C程序更改到任何目录

chdir()函数。有关更多信息,请使用
manchdir

是,函数。

好的,用于更改当前目录的POSIX命令是:

chdir(const char*path);
请参阅。

#包括“stdafx.h”
#包括
#包括
#包括
int main(int argc,char*argv[])
{
系统(“C:\\windows\\notepad.exe”);
chdir(“C:\\windows\\desktop”);
返回0;
}

根据

根据您的操作系统,有不同的更改当前目录的调用。这些通常只会更改运行可执行文件的进程的当前目录。进程退出后,您将位于启动的目录中。

chdir()
仅更改进程的当前工作目录,而不更改正在工作的上下文的当前工作目录。假设您在终端中执行一个程序,并且当前目录是
/home/Documents
,那么在执行一个程序时,有以下几行代码

chdir("cd ../Downloads");

不会更改终端的工作目录,但只更改进程的工作目录。

您正在查找
cd
?或者您正在寻找一种在C中实际设置active directory的方法?它被称为hammer!:p这些问题通常作为练习提供给学习unix之类的OSs的学生。如果是这种情况,请仔细注意Peter所说的哪些进程可以和不可以受到影响。感谢Peter,因此似乎不会发生目录的物理更改。当前目录是进程状态的一部分(如打开的文件、内存映射、环境变量…)。通常一个进程无法更改另一个进程的状态(通常,调试器等可能具有特权,但这是另一回事)。这就是为什么“cd”是一个shell内置文件,而不是一个单独的可执行文件。有一个解决方法,使用[code]cd`whateverprogrammethattprintsdirtostout`[/code]
chdir("cd ../Downloads");