1

我正在为 Mac OS 10.6.x/10.7.x 编写应用程序。在我的应用程序中,我想检测达到最大打开文件描述符数的软限制的错误(由 ulimit -n 报告)。我确信应该有它的信号,但我找不到它。有记录的信号与 CPU 和最大文件大小的软限制有关,但与文件描述符无关。有谁知道该怎么做?

提前致谢。

4

2 回答 2

0

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
    }
}
于 2012-05-15T13:28:42.963 回答
0

getrlimit(RLIMIT_NOFILE);似乎是您正在寻找的东西。

于 2012-05-15T13:36:00.587 回答