我正在为 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);
似乎是您正在寻找的东西。