Re: [BUG] Generic syscalls -- chmod vs. fchmodat
From: Arnd Bergmann <hidden>
Date: 2011-01-25 20:05:31
Also in:
lkml
On Tuesday 25 January 2011 19:34:37 Roland McGrath wrote:
I don't think this was part of the original intent when the calls were added, but I suppose it makes sense.
More importantly, even if it was never meant this way, anyone could have assumed that it was and started using the system call in this way.
quoted
Treating the empty string special for AT_FDCWD is rather pointless, but at least consistent.I agree about the consistency point. However, one could also call it consistent if the empty string fails to resolve when operating on either a directory file descriptor or AT_FDCWD but works on a non-directory file descriptor.
Yes.
POSIX does not mandate that *at calls fail with ENOTDIR when passed a non-directory file descriptor (it's a "may fail" error, not a "shall fail" error). So that behavior would be consistent both with the POSIX requirements as I read them, and with the desire you mentioned to let the fblahat system call serve to implement fblah as well as blah. Then libc would not have to wrap the *at calls with any special check to conform to POSIX.
Makes sense. Arnd