我在msdn查到一些,如果用c函数库的话默认限制512,可以用函数_setmaxstdio修改到2048。如果用win32的系统函数的话我还没试,估计很高,正在看。是我糊涂了,呵呵,没有分清除系统限制和具体函数库的限制(ps:也许现在的理解还是错的^-^)。下面是msdn里对c函数库限制的解释The _setmaxstdio function changes the maximum value for the number of files which may be simultaneously open at the stdio level. C run-time I/O now supports many more open files on Win32 platforms than in previous versions. Up to 2,048 files may be open simultaneously at the lowio level (that is, opened and accessed by means of the _open, _read, _write, and so forth family of I/O functions). Up to 512 files may be open simultaneously at the stdio level (that is, opened and accessed by means of the fopen, fgetc, fputc, and so forth family of functions). The limit of 512 open files at the stdio level may be increased to a maximum of 2,048 by means of the _setmaxstdio function.Since stdio level functions, such as fopen, are built on top of the lowio functions, the maximum of 2,048 is a hard upper limit for the number of simultaneously open files accessed through the C run-time library.Note This upper limit may be beyond what is supported by a particular Win32 platform and configuration.
你看看WINDOWS内核代码就知道了。
我试过,一个进程的HANDLE超过9999,程序就出问题了。
所以:9999?