最近は、非BSD系システムではSIGCHLDをSIG_IGNできないそうだ。Linuxで「man signal」するとそのような記述がある。ちなみにSIGCHLDをSIG_IGNする意味は「悪魔の情報処理用語辞典」の「ゾンビ」の項に書いた気がする。ちなみに、自分が作るシステムではSIGCHLDをSIG_IGNした事はない。
で、今仕事で移植しているモノはSIGSHLDをSIG_IGNしている事に依存した作りになっているのか、SIGCHLDのハンドラ追加すると動きが変なんである。Xツールキットモノのアプリ(正確にはOSF/Motifだが)なためかもしれん(が、自分が過去に作った同じようなアプリケーションでは問題無かったので、やっぱり謎だ。Lesstifが悪いのか?)。
そんな事で困ってたんだが、どーやらSIGCHLDをSIG_IGNできないのはsignal(3)だけの問題であって、sigaction(2)使うぶんにはフツーにSIG_IGNできるようだ。
って事で未来の自分のためにコード書いておく。
struct sigaction sa; sigaction( SIGCHLD, NULL, &sa ); sa.sa_flags |= SA_NOCLDSTOP; /* この指定要らんかも */ sa.sa_handler = SIG_IGN; sigaction( SIGCHLD, &sa, NULL );
ところで移植元のシステムはSVR4由来のPOSIX互換OSのハズなんだが、最近はsignal(3)でSIGCHLDをSIG_IGNできなくなっているんだろうか? SunのSolarisなんかも仲間だと思ったが、どーなんだろう。ちなみに生きていればSONYのNEWSもOCMP仲間だ(だれも知らんわ)。
あと、昔はsignal(2)だった記憶があるんだけど気のせいかなぁ?気のせいだな。なんせ自分は長い事sleep(2)だと思ってたくらいだからな。
※(2)ってのはシステムコールの事で(3)はライブラリ。システムコールって何?って聞かれるとリンダこまっちゃウ(爆)。Win32APIみたいなモノだとでも思っといてちょーだい。ってWin32APIが何?って聞かれると以下略。
ま、どーでもよか。
sleep(3)で思い出したけど、移植元のヤツってばsleep(3)とalarm(2)をほんの数行の距離で併用してやがった。sleep(3)は内部でalarm(2)を使ってるんで誤動作する気配漂う。で、pause(2)など駆使して修正しといた。
ってな事で、(2)とか(3)とか意識してコード書かないと原因不明のバグ発生とあいなるよという話でした?
ってゆーか、意識してくれよなほんと。移植する身にもなってくれ。移植してんのかコードのクリーンアップしてんだかワカンねぇぞまったく。
その移植元が特許取ったと今メール来ました。どこがどーゆー風に特許に価するのか皆目見当がつきません…。
特許とるようなシステムでも中身はアレというお話でした…。
特許と言えばコナミ以下略。
コナミと言えば、昨日久々にPC-Engine CD-ROMROMで「グラディウスII」遊んだ。エミュレータじゃないぞ。実機だぞ。ちなみに。
で、その難易度の低さに感動。家庭用はこうでなくちゃ(笑)。
ついでに、「YsIV −Dawn ナントカ Ys」ってのも発見。内容がまったく思い出せない。ちょっと脳裏をかすめたんだが、それはひょっとすると「風の伝説ザナドゥ」の可能性あり。で、「風の伝説ザナドゥ」どこ行ったんだろう。紛失。中古で買いなおすのもバカらしい。
「YsIV」は遊ぼうとしたのだが夕飯食えと召集がかかったので内容は不明。オープニングのデモは見たが、見事に「YsIII」は無かった事になってて笑える。
で、YsシリーズってVくらいまで出たんでしたっけ?(んで、IVはスーファミとPC-Engineで内容別物でしたっけ?)。
ま、どっちにしろIV以降はパチモンなんでどーでもよか。
って事で、この前もちょっと書いた熱い漢のヨコシューのネタを考えたりしていた。例によってタイトルから決めたんだが「グライアスII」または「ダラリウスII」だ! なんでイキナリ「II」なのか謎だしパクリだし最低(笑)。
だから自機の名前は「メタリホーク」とでもしとくか(なんかライフフォースが混じってるうえにナムコのヘリゲーみたいだ)。
パワーアップシステムはカプセルを拾って武器ゲージを移動させるヤツだ。スピードは3段階、ミッソー(笑)は4段階、ショット4段階、むーかぽー(笑)4個まで、フォースシールド3段階までパワーアップできるぜ。
ショットは小ボス倒すとでてくる切り替えアイテムで通常弾とレーザーとダブルが切りかえられるぜ!(東亜シューが混ざってるな…)。同様にミッソーもホーミングとスプレッドの切り替えだ!
そういえば、このまえCATVでディズニー風のアニメやってたんだけど、その中で頭が2個ある奇形のドラゴンがでてきた。「むぅ、ドラスピ…」とか思ったヤツは自分だけか。