mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Michael Kerrisk" <mtk.manpages@googlemail.com>
To: "Ulrich Drepper" <drepper@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
	"Al Viro" <viro@zeniv.linux.org.uk>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: dup2() vs dup3() inconsistency when
Date: Fri, 10 Oct 2008 07:01:06 +0200	[thread overview]
Message-ID: <cfd18e0f0810092201s36eea70fr51da29c901157baa@mail.gmail.com> (raw)
In-Reply-To: <48EE6A2B.8030005@redhat.com>

On Thu, Oct 9, 2008 at 10:31 PM, Ulrich Drepper <drepper@redhat.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> 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)?

Good point.  However, I don't find any list mail that discussed this
implementation choice or its rationale.  That would have been useful.

> There is no reason to use
> dup2(fd,fd), so why the hell somebody wants to defend this is beyond me.

There is no defense, except consistency with historical behavior.  My
reasons for raising this thread were:

a) to point out the inconsistency with dup2().
b) to check that the change was intentional (though it was already
fairly clear that it was)
c) to determine the reason(s) for the change (which were not made clear)

As you point out, we have various possibilities with dup3(fd, fd, flags)

1) Do nothing to fd.
2) change the O_CLOEXEC flag for fd.
3) Give an error.

The problem is that depending on one's perspective one argue that
either 1 or 2 is consistent with dup2(), so 3 seems a reasonable thing
to do.

Cheers,

Michael


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
git://git.kernel.org/pub/scm/docs/man-pages/man-pages.git
man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html
Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html

  parent reply	other threads:[~2008-10-10  5:01 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-09 12:10 Michael Kerrisk
2008-10-09 17:21 ` H. Peter Anvin
2008-10-09 20:31   ` Ulrich Drepper
2008-10-09 20:43     ` H. Peter Anvin
2008-10-09 20:52       ` Ulrich Drepper
2008-10-09 20:57         ` H. Peter Anvin
2008-10-09 21:04           ` Ulrich Drepper
2008-10-10  5:04           ` Michael Kerrisk
2008-10-10 12:09             ` Bernd Petrovitsch
2008-10-10 12:15               ` Michael Kerrisk
2008-10-10 13:02                 ` Bernd Petrovitsch
2008-10-10 13:15                   ` Michael Kerrisk
2008-10-10 13:31                     ` Bernd Petrovitsch
2008-10-10  5:01     ` Michael Kerrisk [this message]
2008-10-10 13:43     ` Heikki Orsila
     [not found] <bl2EV-7G2-9@gated-at.bofh.it>
     [not found] ` <bl7v3-5sk-17@gated-at.bofh.it>
     [not found]   ` <blasN-OS-9@gated-at.bofh.it>
     [not found]     ` <blaCu-Z0-11@gated-at.bofh.it>
     [not found]       ` <blaMj-18o-23@gated-at.bofh.it>
     [not found]         ` <blaMj-18o-21@gated-at.bofh.it>
     [not found]           ` <bliqg-2DH-1@gated-at.bofh.it>
2008-10-10 11:42             ` Bodo Eggert
2008-10-10 11:59               ` Michael Kerrisk
2008-10-10 13:19                 ` Bodo Eggert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cfd18e0f0810092201s36eea70fr51da29c901157baa@mail.gmail.com \
    --to=mtk.manpages@googlemail.com \
    --cc=drepper@redhat.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®