最大打开文件数的软限制处理

时间:2012-05-15 13:25:06

标签: macos unix

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

提前致谢。

2 个答案:

答案 0 :(得分: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
    }
}

答案 1 :(得分:0)

getrlimit(RLIMIT_NOFILE);似乎就是你要找的东西。