Hi Ken, > they called getdtablesize() on Linux, which it seems returns a smaller > number than getrlimit().
That's surprising. I thought getdtablesize() was effectively return getrlimit(RLIMIT_NOFILE, &ru) < 0 ? OPEN_MAX : ru.rlim_cur; That seems to match /lib/libc.a here, if I squint a bit, assuming OPEN_MAX is 256. 0000000000000000 <__getdtablesize>: 0: f3 0f 1e fa endbr64 4: 48 83 ec 28 sub $0x28,%rsp 8: bf 07 00 00 00 mov $0x7,%edi d: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 14: 00 00 16: 48 89 44 24 18 mov %rax,0x18(%rsp) 1b: 31 c0 xor %eax,%eax 1d: 48 89 e6 mov %rsp,%rsi 20: e8 00 00 00 00 callq 25 <__getdtablesize+0x25> 21: R_X86_64_PLT32 __getrlimit-0x4 25: 8b 14 24 mov (%rsp),%edx 28: 85 c0 test %eax,%eax 2a: 78 1c js 48 <__getdtablesize+0x48> 2c: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx 31: 64 48 33 0c 25 28 00 xor %fs:0x28,%rcx 38: 00 00 3a: 89 d0 mov %edx,%eax 3c: 75 11 jne 4f <__getdtablesize+0x4f> 3e: 48 83 c4 28 add $0x28,%rsp 42: c3 retq 43: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 48: ba 00 01 00 00 mov $0x100,%edx 4d: eb dd jmp 2c <__getdtablesize+0x2c> 4f: ff 15 00 00 00 00 callq *0x0(%rip) # 55 <__getdtablesize+0x55> 51: R_X86_64_GOTPCRELX __stack_chk_fail-0x4 -- Cheers, Ralph. -- nmh-workers https://lists.nongnu.org/mailman/listinfo/nmh-workers