c - 您认为当子进程执行 chdir 时会发生什么 - 这会影响父进程吗?

标签 c process fork

int chdir(const char *path); 

-chdir 将当前目录更改为路径中指定的目录。 如果我对 child 使用此命令/这会影响 parent 吗?

请解释原因(是/否)?

最佳答案

子进程和父进程是独立的进程。大多数情况下,子级的资源是在创建子级时从父级的资源复制的,因此它们是单独的资源,而不是共享资源。

启动时,系统会创建一个初始进程。该进程创建额外的系统进程,以管理用户界面、提供网络服务等。当您登录(可能是自动登录)时,其中一个进程会创建一个进程来管理您的登录 session ,包括桌面。当您打开应用程序时,该登录/ session 进程(或其创建的其他进程)会创建一个应用程序进程。

如果,当子级更改其当前目录时,父级的目录也更改,那么父级的父级目录将更改,其父级也会更改,然后所有备份该行的系统进程将使用不同的目录。这是不合适的;他们不应该使用特定用户的目录。每个进程都有其自己的目的,即拥有特定的当前工作目录。

关于c - 您认为当子进程执行 chdir 时会发生什么 - 这会影响父进程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50121326/

相关文章:

c - 赋值语句后的段错误(lex 和 yacc)

c - 加密 API 调用失败

windows - 在 NT 驱动程序中拦截进程执行

c - 需要知道 fork 是如何工作的吗?

windows - 为什么 Windows 上的 Perl IO::Socket 在 64 个连接后会提示 "Resource Not Available"?

c++ - fopen 在 "w"模式下比在 "a"模式下花费更多时间

c - 如何防止一个线程递减信号量,直到另一个线程准备好为止?

linux - 如何清除父进程设置的子进程中的陷阱?

c++ - argc从哪里来?

c - 对于简单计数器来说,是否需要实现信号量或互斥锁?