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