タグ

Programmingとforkに関するItisangoのブックマーク (2)

  • fork()は失敗するんだぜ、覚えときな

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

  • Android NDKでfork, execは使ってはダメ - 組み込みの人。

    Android NDKでfork, execのシステムコールは使ってはダメという話。 Google グループ NDKの中でforkとexecを使って子プロセスを起動してデーモン的なプログラムを動かした。しばらくうまく動いていたけど、突然SEGVで落ちて、クラッシュダンプもログに出てないので原因がわからない。なんで? という質問。 fork, execはNDKのヘッダファイルに含まれているけど、それらはシステム用であり、アプリケーションから使ったときの振る舞いは保障できない。将来それを保障することもない。(さらに言えば、ある日fork, execをアプリケーションから使用することを禁止するかも。) バックグランドで長期間動くプログラムはandroid.app.Serviceを使うのが正しい方法。 今までのAndroidの内部構造に関する知識でこれを補足すると、 Androidのアプリケーショ

    Android NDKでfork, execは使ってはダメ - 組み込みの人。
    Itisango
    Itisango 2011/06/05
    LinuxのようでLinuxじゃない、ベンベン!
  • 1