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

Bis*_*Das 15 c directory executable

有没有什么方法可以通过执行C程序更改到任何目录

Mic*_*kis 15

chdir()功能.有关详细信息,请使用man chdir.


Pet*_*den 14

根据您的操作系统,有不同的调用来更改当前目录.这些通常只会更改运行可执行文件的进程的当前目录.进程退出后,您将进入您开始的目录.

  • 这就是'cd'是shell内置的原因,而不是单独的可执行文件. (7认同)
  • 当前目录是进程状态的一部分(如打开文件,内存映射,环境变量......).通常一个进程不能改变另一个进程的状态(通常,调试器等可能具有特殊权限,但这是另一个故事). (2认同)

Dmi*_*ant 9

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

chdir(const char*path);
Run Code Online (Sandbox Code Playgroud)

最近POSIX文档chdir()是在这里.


小智 9

chdir()仅更改进程的当前工作目录,但不更改您正在使用的上下文.假设您在终端中执行程序并且当前目录是/home/Documents,然后执行具有以下行的程序

chdir("cd ../Downloads");
Run Code Online (Sandbox Code Playgroud)

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