1

シェルコマンドを呼び出すときに、内部でコード/ステップフローを理解するのを手伝ってください。たとえば、bourne シェルで次のコマンドを実行するとします。

ls  -l | grep -r "string"

内部で行われている関数呼び出しは何ですか?

私の知る限り、execv内部でいくつかのファミリ関数を呼び出します。しかし、それが行う他の関数呼び出しは何であり、そのシーケンスは何になるのか、誰か教えてもらえますか?

4

2 に答える 2

11

strace ユーティリティを使用して何が起こるかを自分で調べることができます。次のように実行します。

strace sh -c'ls -l | grep -r "文字列"'

これによりシェルが実行され、シェルがコマンドを実行し、最後に strace がシステム コールに関して舞台裏で何が起こっているかを出力します。

于 2013-07-24T11:19:34.147 に答える