RTEMS5 File Descriptors

Ian Caddy ianc at goanna.iinet.net.au
Wed Nov 21 08:13:33 UTC 2018

Hi Mathew and Sebastian,

Thanks for the ideas.

On the older product there was a reasonable existing code base already 
built, so we effectively forced the users by deprecating the old select 
and made them build with the new select.

This is a new product with RTEMS 5 and since I am doing all the early 
work, I can force a compiler build option with the -DFD_SETSIZE=500so 
this is probably the direction we will go, that way all the users will 
end up with this define when they build their apps.


Ian Caddy

On 21/11/2018 3:00 pm, Sebastian Huber wrote:
> Hello Ian,
> the file descriptors use now reference counting. In case you use a 
> closed file descriptor you get an error. The file descriptor list 
> order was changed to keep closed file descriptors as long as possible 
> in the closed state to improve the detection of a use after close.
> In case you plan to switch to libbsd for networking, then using 
> kqueue() instead of select() is an option.
> A quick and dirty hack would be to patch Newlib and set FD_SETSIZE to 
> your desired value.
> If you have all your software under control, then you can also define 
> FD_SETSIZE yourself BEFORE you include <sys/select.h>.
> You can also dynamically allocate the fd_set depending on 
> rtems_libio_number_iops, for example:
> https://git.rtems.org/rtems-libbsd/commit/?id=4d8f9e62615d86a4f2d9b438da8276988277602f 
> https://git.rtems.org/rtems-libbsd/commit/?id=8ee0aa19cfc228a962d084bee805cb20bcd70f3b 
> https://git.rtems.org/rtems-libbsd/commit/?id=7ec4d8760dd98e647977fae76749609a81bdf6d2 
> I think we should mention this in the release notes.

More information about the users mailing list