Messages in this thread | | | Date | Fri, 10 Oct 2008 16:43:51 +0300 | From | Heikki Orsila <> | Subject | Re: dup2() vs dup3() inconsistency when |
| |
On Thu, Oct 09, 2008 at 01:31:39PM -0700, Ulrich Drepper wrote: > H. Peter Anvin wrote: > > The dup2() behavior comes from the logical consequence of dup2()'s > > "close on reuse"; one would think it would be logical for dup3() to > > behave the same way. > > No. We deliberately decided on this change. Otherwise, what is the > result of dup3(fd, fd, O_CLOEXEC)? There is no reason to use > dup2(fd,fd), so why the hell somebody wants to defend this is beyond me.
The reason is: application programmers expect it to behave that way. The interface is mostly targeted for typical application programmers, and consistency decreases bugs. In this respect, it would be a good idea for dup3() to have the same semantics. Doing that might not make practical sense, but it is secondary to obviousness.
-- Heikki Orsila heikki.orsila@iki.fi http://www.iki.fi/shd
| |