int main()
{
int err1, err2;
struct rlimit rlim;
err = getrlimit(RLIMIT_NOFILE, &rlim);
printf("max_fds: %d\n", rlim.rlim_max); // 4096
err1 = dup2(1, 1023); // OK
err2 = dup2(2, 4090); // error: EBADF
return 0;
}
与上面的代码一样,我使用getrlimit获取每个进程打开文件的最大数量并打印4096.但是,当我将大于1023的newfd传递到dup2()时,它总是返回错误EBADF 。为什么?dup2()函数的max_fd数是多少?
我喜欢你的:) – Coaku 2013-03-25 08:43:28
哈哈,谢谢 – cmc 2013-03-25 08:46:16