Mac OS 10.6.x/10.7.x 用のアプリを作成しています。私のアプリでは、開いているファイル記述子の最大数のソフトリミットに達したというエラーを検出したいと考えています (ulimit -n によって報告されます)。信号があるはずですが、見つけることができません。CPU と最大ファイル サイズのソフトリミットに関連するシグナルは文書化されていますが、ファイル記述子には関連していません。誰もそれを行う方法を知っていますか?
前もって感謝します。
errno
ファイルを開くときに(経由で)エラーが発生します。信号は届きません。
int fd = open("somefile", O_CREAT);
if (fd < 0)
{
if (errno == EMFILE)
{
// Hit process file descriptor limit
}
else if (errno == ENFILE)
{
// Hit system file descriptor limit
}
}
getrlimit(RLIMIT_NOFILE);
あなたが探しているもののようです。