fork とか exec とか signal

最初は Ruby で書いてみて、大まかな処理は書けたけど Ruby では用意されてない関数を使うために C++ で書き直す。という割と不毛なコード書きの日々。

getrusage() とかでプロセスの実行時間とか使用メモリ量とか分かると思ったのだけど、時間はこれでいいけどメモリ量はよく分からない。あと、 fork() して setrlimit() で実行時間・使用できるメモリ量を制限した子プロセスがどのように終了したか知る方法も。今のところ時間制限に引っかかって落ちたと思われる時でも SIGKILL で落ちたと言われるようなコードなんですが、これ SIGALRM とか返ってこないのかな…。

signal() より sigaction() を使う方がいいらしい、と今日知った。何が良いのかよく分からないけど。


About this entry