It seems that my system's select call has a limitation of 1024 open
file descriptors.

I need to learn about this restriction as I am programming a
multiplexed I/O server.

Is the 1024 open file descriptor limitation a per process limitation
or a system wide limitation?

How can I find out how many open files my system supports?

Where do I look to find out if my C / C++ implementation has similar
such file limits?

I have done some googling and have a general idea of the implications,
but I need details for my project.

What are some solutions for handling a large number ( 5000+ ) of
simultaneously open sockets?

Thank you for reading,
Charles Wilkins