setrlimit() を使用して、その制御下で実行される別のプログラムの出力ファイルサイズを制限するサンドボックスプログラムがあります。次のように実行します。
sandbox -max 2048 /usr/bin/mono --debug myprogram.exe <p1 >r1 2>r2
「-max 2048」スイッチは、出力を最大 2K バイトに制限するようサンドボックスに指示します。
「myprogram.exe」内で例外が発生した場合、または「myprogram.exe」内から故意に stderr に何かを書き込んだ場合、期待どおりに r2 に表示されます。ただし、ファイル サイズの制限を超えると、次のエラー メッセージが表示されます。
File size limit exceeded (core dumped)
しかし、期待どおりにエラー ログ r2 に書き込まれる代わりに、コンソールに出力されます。なぜこれが起こっているのか誰にも教えてもらえますか?このメッセージを他のすべてのものと一緒に r2 に書き込む方法はありますか?