Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jul 2002 00:50:03 +0200
From:      "Mauritz Sundell" <mauritz.sundell@telia.com>
To:        "Abc Xyz" <abc@anchorageinternet.org>, "freebsd-questions" <questions@FreeBSD.ORG>
Subject:   Re: /dev/null and 2>&-
Message-ID:  <021301c22de4$4a1fd9f0$0e81a8c0@gilgamesh>
References:  <200207171247.g6HClE8B083466@anchorageinternet.org>

next in thread | previous in thread | raw e-mail | index | archive | help
----- Original Message -----
From: "Abc Xyz" <abc@anchorageinternet.org>
No real name?

To: "Mauritz Sundell" <mauritz.sundell@telia.com>; "freebsd-questions"
<questions@FreeBSD.ORG>
Sent: Wednesday, July 17, 2002 2:47 PM
Subject: Re: /dev/null and 2>&-


> > > i just installed 4.6-RELEASE, and notice that
> > > the '2>&-' sh (FBSD) construct seems to be broken.
> > > i am going thru all my scripts having to change
> > > it to /dev/null ...
>
> > In what way is it broken?
>
> > If the construct is generally used for hiding errormessages, one
> > should probably replace it with '2>/dev/null' anyway, since 2>&-
> > only closes filedescriptor 2 at startup of program and the first file
> > the program opens will be assigned the very same and all output
> > to stderr will come up in that file.
>
> > Example,
> > sh> tee < /dev/null 2>&- empty /nonexistent/missingfile
> > sh> cat empty
> > tee: /nonexistent/missingfile: No such file or directory
> > sh>
>
> this example above is incorrect with regards to 4.6-RELEASE.
Sorry, I forgot I had replaced my /bin/sh in 4.6-RELEASE with /bin/sh
from 5.0-CURRENT due to problems when I was building and installing
CURRENT over RELEASE. /bin/sh core-dumped under installation so I
replaced the RELEASE sh with CURRENT:s  and then the rest of installation
worked.
So, I have also have had trouble with /bin/sh from 4.6-RELEASE but in
CURRENT
it works again. I dont know how /bin/sh works in 4.6-STABLE

Are where someone out there who wants to test it? And have
better answers?

> with 4.6-RELEASE, output is as follows:
>
> Example,
> sh> tee < /dev/null 2>&- empty /nonexistent/missingfile
> tee: /nonexistent/missingfile: No such file or directory
> sh> cat empty
> sh>
>
> > sh> tee < /dev/null 2>/dev/null empty /nonexistent/missingfile
> > sh> cat empty
> > sh>
>
> > > i figure it's not realistic to assume a bug this
> > > obvious would make it to release stage, so my
> > > question is - is something else going on?
> > > or is this just due to changes in 'sh'?
> > > is it a bug?  or is it a permenent change?
>
I dont know the history of sh, but I also think it as a bug,
and from my experience with CURRENT it look as it changed
back to normal. But maybe there is an intended change, should
look in STABLE.

I have a vague memory of seeing mail about special treatment of
filedescriptors 0,1 and 2 when calling fork() or was it setuid(),
dont remember ... might be connected or?
--
Mauritz Sundell, mauritz.sundell@telia.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?021301c22de4$4a1fd9f0$0e81a8c0>