Re: dup2() vs dup3() inconsistency when

From: Heikki Orsila
Date: Fri Oct 10 2008 - 10:07:39 EST


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@xxxxxx
http://www.iki.fi/shd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/