How do I break the 64 file descriptor limit ?

anderss at uplog.se anderss at uplog.se
Wed Jul 25 00:51:16 AEST 1990


The subject line above says it. I'm running SunOS 4.1. I have a process
that wants to fork children (a lot of them). In order to communicate with
the children I've tried both pipes and sockets, but both tell me that I
can't have more than 64 file descriptors in one process. What I find
curious is that a quick look-around in the system header files suggest
that in 4.1 the problem is taken care of: if the process tries to open
more than 64 file descriptors, more are allocated dynamically. So, why do
pipe() and socketpair() still think that 64's the limit ? Might it be that
they still check ulimit() for the static size of the descriptor block in
the uarea ?

Another question, this time about lightweight processes: In 4.1 there is
some support for lwp and asynch i/o in the kernel. Does this mean that the
system calls that previously blocked the whole pod don't anymore ? That
would be great...

Real life:      Anders Sjolund                  Email:  anderss at uplog.se
Snail mail:     Telesoft Uppsala AB             Phone:  +46 18 189409
                Box 1218			Fax:	+46 18 132039
                S - 751 42 Uppsala, Sweden



More information about the Comp.sys.sun mailing list