0

cd以外のディレクトリに移動して$HOMEを実行するとexec bash、新しい bash が以前のシェルの作業ディレクトリで開始されます。

新しい bash は、以前の作業ディレクトリが何であったかをどのように認識していますか?

4

3 に答える 3

3

プロセス タスク構造には、継承された現在の作業ディレクトリがあります。Linux では、次のように表示できます。

ls -l /proc/self/cwd

新しいシェルを作成すると、親プロセスの現在の作業ディレクトリが継承されます。

于 2012-11-02T02:17:22.170 に答える
0

作業ディレクトリは、オペレーティングシステムによって提供されるプロパティであり、必要かどうかに関係なく、プロセスに帰属します。

別のプロセス(親)によって生成されたプロセス(子)は、その側の介入なしに、生成プロセスの作業ディレクトリを受け取ります。

設計の一部として作業ディレクトリを使用するプロセスの他に、プロセスがクラッシュしたときにコアダンプの場所を決定するなどの目的でOSが使用することもできます。

于 2012-11-02T02:26:29.800 に答える
0

すべてのプロセスがその親の作業ディレクトリを継承するのと同じように、その作業ディレクトリを継承します。

プログラムはどのように機能すると思いますpwdか? getcwd親から継承したシステムコールを使用して、独自の作業ディレクトリを取得するだけです。

于 2012-11-02T02:15:57.157 に答える