Messages in this thread | | | Date | Wed, 20 Aug 2008 18:49:29 +0200 | Subject | No NONBLOCK flag for dup3() or epoll_create1()? | From | Michael Kerrisk <> |
| |
Ulrich
I've been doing some testing (2.6.27-rc3) of your new file-descriptor-creating syscalls that accept flags. According to
http://udrepper.livejournal.com/20407.html
all of the system calls should accept a *_NONBLOCK flag. All of them do, except for two: dup3(olfd, newfd, flags) and epoll_create1(flags).
For epoll_create1() this certainly appears to be an oversight, since I can't think of a reason not to support *_NONBLOCK.
For dup3() it is perhaps also an oversight. However, it's not really clear to me whether supporting O_NONBLOCK makes sense, since that would change the file status flags of the open file description that is (also) referred to by oldfd. (Furthermore, given a open file description for which O_NONBLOCK is already enabled, it is not possible to make a dup3() call that disables O_NONBLOCK, which is an odd asymmetry in the API.) What are your thoughts on this?
Cheers,
Michael
| |