进程是否继承逻辑和物理工作目录?

进程是否继承逻辑和物理工作目录?

我知道当一个进程启动时,它会继承其父进程的工作目录。但它是同时继承逻辑工作目录和物理工作目录还是仅继承物理工作目录?

答案1

嗯,有点像。 “逻辑”工作目录包含在环境变量中PWDenviron(7)说它是“由某些外壳设置”,所以显然取决于应用程序。另一个问题是其他程序是否读取它:

/tmp$ ln -s ~ link  
/tmp$ cd link  
/tmp/link$ bash -c "pwd"
/tmp/link
/tmp/link$ zsh -c "pwd" 
/home/itvirta
/tmp/link$ dash -c "pwd"
/tmp/link

Bashdash似乎指望它,但zsh事实并非如此(在我的系统上,我确信它是可配置的)。

答案2

获取cwd系统调用返回物理路径名,如POSIX规定

路径名不应包含点、点-点或符号链接的组件。

Linux 似乎使用比名称更低级别的机制来传递 CWD,因为您可以在另一个程序将其用作其 CWD 时重命名目录。

相关内容