You can add functionality to the resource manager you're writing in these fundamental ways:
The first two are almost identical, because the default functions really don't do that much by themselves—they rely on the POSIX helper functions. The third approach has advantages and disadvantages.