Um processo herda os diretórios de trabalho lógicos e físicos?

Um processo herda os diretórios de trabalho lógicos e físicos?

Eu sei que quando um processo é iniciado, ele herda o diretório de trabalho do seu processo pai. Mas ele herda os diretórios de trabalho lógicos e físicos ou apenas o diretório de trabalho físico?

Responder1

Hum, mais ou menos. O diretório de trabalho "lógico" é carregado na variável de ambiente PWD.environ(7)diz que é "Definido por alguns shells", obviamente dependente do aplicativo. Outro problema é se o outro programa lê:

/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 e dashparece que conta com isso, zshnão (no meu sistema, tenho certeza que é configurável).

Responder2

Ogetcwdchamada do sistema retorna nomes de caminhos físicos, comoPOSIXmanda que

O nome do caminho não deve conter componentes que sejam ponto ou ponto-ponto, ou que sejam links simbólicos.

O Linux parece usar um mecanismo de nível mais baixo do que nomes para passar o CWD, já que você pode renomear um diretório enquanto outro programa o usa como seu CWD.

informação relacionada