タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

システムコールとプロセスに関するhigedのブックマーク (2)

  • ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ

    他のプロセスを中断せずに、その出力をミラーリングして新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceやgdbといったコマンドは一体どういう仕組みで動いているのでしょうか。 ptraceシステムコールを使い、プロセスが呼ぶシステムコールを調べて出力を覗き見するコマンドを実装してみたいと思います。 ptraceシステムコール Linuxを触っていると、いかにプロセスを組み合わせるか、組み合わせる方法をどれだけ知っているかが重要になってきます。 パイプやリダイレクトを使ってプロセスの出力結果を制御したり、コードの中からコマンドを実行して、終了ステータスを取得したりします。 プロセスツリーやプロセスグループを理解し、シグナルやnohupコマンドを使ったりします。 プロセスの扱いに慣れると疑問に持つのがstraceやgdbの仕組みです。 プロセスの実行しているシステムコールを出力し

    ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ
  • fork, exec, pipe - とあるSIerの憂鬱

    UNIX(Linux)のプロセス起動は createProcess というような1つのシステムコールではなく、fork と exec の組み合わせ(Fork-Exec)で実現される。 fork は現在のプロセスをまるまるコピーし、別々の実行コンテキストを作る。 fork への戻り値をそれぞれのコンテキストで変えて区別させる。 仮想メモリ空間の情報もコピーされる。 exec は自プロセスを別のバイナリ実行用プロセスに置き換える。 fork と exec が分かれており、かつ、fork が親プロセスの仮想メモリ空間をコピーしていることで、親プロセスと子プロセス(または子プロセス同士)の間の通信用のパイプを作る処理を fork と exec の間で行うことができる。 「fork」『フリー百科事典 ウィキペディア日語版』より Fork-Execは、UNIXで一般的に使われる手法であり、新たなプロ

    fork, exec, pipe - とあるSIerの憂鬱
  • 1