我有一个沙盒程序,它使用 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?