missing libc interception functions may lead to silently working calls
As we are using a real fd (pointing to /dev/null) some calls may succeed. This could be a potential issue to detect missing calls (as no failure involved).
A proposal is to have an ENV variable like PROTECT_FD that does not move fds, but start creating gekkofs ones in a different range (i.e. +100000). As the fds are virtual, ulimit doesn't restrict them.
LIBGKFS_RANGE_FD=<num>
One valid option is to use negative fds, but this will be an issue with actual code that check < 0.