UNIXコマンドの暗黙的なシステムコール

UNIXコマンドの暗黙的なシステムコール

私はUNIXとシステムコールを調べて、低レベルの厳しい問題に遭遇しました。質問は、このコマンドが呼び出すシステム呼び出しを尋ねます。

grep word1 word2 > file.txt

私はいくつかの調査をしましたが、基本的なUNIX呼び出しに関する多くのリソースが見つかりませんでした。

openしかし、答えは(ファイルのファイル記述子を開きますfile.txt)、dup2(ファイルの記述子にSTDOUT変更)を書き、(現在のファイル記述子)を書き、最後に...ファイルを閉じるようです。記述子grepopenwriteSTDOUTgrepfile.txtclose()file.txt

しかし、私が正しいか正しい道を行っているのかわかりません。 UNIXの経験がある人なら誰でもこのトピックについて教えてもらえますか?

ベストアンサー1

Linuxではstrace:

strace -f sh -c 'grep word1 file > file.txt'

ここでは、子プロセスを追跡するために-fTellを使用します。strace

*BSDにdtruss(これはdtrace潜在的な):

dtruss -f sh -c 'grep word1 file > file.txt'

OSXではtrace。歴史的なUnixシステムには以下が含まれます。屋根フレームソラリスAIX、等。 )。

おすすめ記事