On Mon, 21 Oct 2013, Florian Weimer wrote:
Feel free to propose/implement new *at functions for glibc. That doesn't
depend on kernel support (although kernel support would be good) because
you can implement them in userspace using /proc/self/fd, just like many
existing fallback implementations for !__ASSUME_ATFCTS.
Interesting. Is constructing such names
static const char procfd[] = "/proc/self/fd/%d/%s";
race-free? I'm asking because the /proc/self/fd entries are presented as
symbolic links.
I don't see why this technique would involve any races different from a
direct syscall. In both cases, if another thread changes the file
descriptor at the same time as the call, you can't predict whether the old
or new version would be used.