• ベストアンサー

システムコールについて

最近システムコールについて学んでいるのですが、C言語でprintfを実行するために必要なシステムコールを特定するにはどのようなさぎょうをすればよいでしょうか? はじめに適当なプログラムを作ってあるのですが、そのプログラムを工夫することによって特定するやり方でお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • v-north
  • ベストアンサー率100% (1/1)
回答No.2

プロセスの起動execcから、dllロードするためのopen/closeとか、実際のmainまで行くのに、確かに各種システムコールが呼ばれていますね。このあたりはどのプロセスをstraceしても同じようなものですから、慣れてしまうと、目的のシステムコールはこの当たりかと(引数も目印となりますし。)推測できるようになります。 ちなみに、printfは、ファイルIDを1としてwriteシステムコール(ファイル出力と同じ。)を呼んでいるに過ぎません。

tardyyak
質問者

お礼

なるほど。お礼を忘れていました汗 ありがとうございます。

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

straceを利用するとか gdbなどのデバッガなどで処理をおっかけるとか 一番確実なのはライブラリのソースを読むことだけど。

tardyyak
質問者

補足

straceは使ったのですが、さまざまなシステムコールがでてきます。その中で、printfを実行するために必要なシステムコールを特定するために何をすればいいかがわかりません。説明不足でした。すいません。