我正在为Mac OS 10.6.x / 10.7.x编写应用程序。在我的应用程序中,我想检测到达到最大打开文件描述符数量的softlimit的错误(由ulimit -n报告)。我相信它应该有一个信号,但我无法找到它。有文件记录的信号与CPU的软限制和最大文件大小有关,但与文件描述符无关。有谁知道怎么做?
提前致谢。
答案 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);
似乎就是你要找的东西。