Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: "Dave Korn" To: , Subject: RE: bug in freopen Date: Fri, 15 Jul 2005 11:37:54 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit In-Reply-To: <071420052313.28844.42D6F19F0007DD6E000070AC22007340760A050E040D0C079D0A@comcast.net> Message-ID: ----Original Message---- >From: Eric Blake >Sent: 15 July 2005 00:14 > POSIX requires that freopen(NULL, mode, f) reopen f in the new > mode, and allows implementations the option of not even closing > f in the first place. But in cygwin, it is failing with EFAULT, which is > not even one of the errors allowed by POSIX. > > http://www.opengroup.org/susv3xsh/freopen.html > > #include > #include > int main(void) > { > FILE* f = freopen (NULL, "rb", stdin); /* Ensure that stdin is binary > */ printf ("file is %s, errno %d:%s\n", f ? "good" : "null", errno, > strerror(errno)); > return 0; > } > > CVS coreutils recently switched to this idiom, replacing its former > use of the nonstandard and setmode() with something > that is required by the standards. But until this bug is fixed, CVS > coreutils will not work with cygwin. The strace in cygwin shows > that newlib tried to perform open(NULL), which is the cause of > the EFAULT. I could take a look at this over the weekend if nobody gets to it first :) cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/