タグ

Linuxとforkに関するindicationのブックマーク (2)

  • 実行中プログラムのイメージを得る - tmtms のメモ

    Twitter見てたらこんなこと言ってる人がいました。 Unix で実行中の実行ファイルのパスを確実に得る方法はない、というのは FAQ だと思うけど、実際にやりたいことは自分自身を別プロセスで新たに立ち上げたいということなので、メモリにロード済の自分自身から別プロセスを作る手段はないんだろうか— Yusuke Endoh (@mametter) 2017年10月25日 昔自分もそんなこと考えたなーと思いつつ、Linuxなら /proc/<pid>/exe が実行ファイルへのリンクになってるんで、 環境によるような気もするけど、自分の実行ファイルのパスは /proc/pid/exe から取れないですかね。— とみたまさひろ (@tmtms) 2017年10月25日 と言ってみたら、 Linuxならその手が使えますが、現在実行中の実行ファイルでも削除できちゃいますから、パス名を得る完璧な方法

    実行中プログラムのイメージを得る - tmtms のメモ
    indication
    indication 2017/10/26
    inodeまで追いかけるのかと思いきや、そのままsymlinkでいけるんだ…ライブラリとかどうなんだろ。あれ、シンボリックリンクじゃなくてハードリンク??あとで読む
  • fork()は失敗するんだぜ、覚えときな

    fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。

  • 1