¿Un proceso hereda los directorios de trabajo lógico y físico?

¿Un proceso hereda los directorios de trabajo lógico y físico?

Sé que cuando se inicia un proceso, hereda el directorio de trabajo de su proceso principal. Pero, ¿hereda tanto el directorio de trabajo lógico como el físico o solo el directorio de trabajo físico?

Respuesta1

Mmm, más o menos. El directorio de trabajo "lógico" se incluye en la variable de entorno PWD.environ(7)dice que está "establecido por algunos shells", por lo que obviamente depende de la aplicación. Otro problema es si el otro programa lo lee:

/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

Bash y dashparece contar con ello, zshno (en mi sistema, estoy seguro de que es configurable).

Respuesta2

ElobtenercwdLa llamada al sistema devuelve nombres de rutas físicas, comoPOSIXmandatos que

El nombre de la ruta no contendrá componentes que sean punto o punto-punto, ni enlaces simbólicos.

Linux parece utilizar un mecanismo de nivel más bajo que los nombres para pasar el CWD, ya que puede cambiar el nombre de un directorio mientras otro programa lo usa como su CWD.

información relacionada