c - 为什么当我尝试系统 ("cd PATH"时); ,终端不能走我的路

标签 c terminal

我有一个问题:

system("cd mypath");

当我在 C 编程语言终端中尝试此操作时,它没有执行任何操作。 我需要帮助。

最佳答案

system 函数创建了一个全新的进程,与调用该函数的进程分开。

每个进程都有自己的当前工作目录与之关联,并且该工作目录仅特定于该进程。更改一个进程的工作目录不会更改另一个进程的工作目录。

如果您想更改自己进程的工作目录,请使用操作系统特定的功能来更改它。喜欢chdir在 Linux(和其他 POSIX 系统,如 macOS)上,或 SetCurrentDirectory在 Windows 中。


请注意,如果您在自己的进程中更改目录,调用您的程序的 shell 或控制台的目录将不会更改,因为它也是一个独立于您的进程。

关于c - 为什么当我尝试系统 ("cd PATH"时); ,终端不能走我的路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57006999/

相关文章:

c - 难以理解循环

C:如何通过函数调用获取数组或二维数组的最后一个元素值

elasticsearch - 无法使用curl PUT进行Elasticsearch

c 使用 freopen 和 argv[1] 在终端中创建文件

python - 在 Python 3.8 上安装 Matplotlib 时出错

python - 在 Ubuntu 终端中,我怎样才能让 python 程序继续运行?

linux包含所有目录

c - 更新终端上显示的文本

c - C 中的 fgets 函数和文件处理

c - C 多线程服务器实现中的段错误