This is the mail archive of the mailing list for the newlib project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: bug in freopen

Dave Korn wrote:
----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.

#include <stdio.h>
#include <errno.h>
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,
  return 0;

CVS coreutils recently switched to this idiom, replacing its former
use of the nonstandard <io.h> 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

I could take a look at this over the weekend if nobody gets to it first :)

A little late, but please do. I'm a little busy at the moment.

-- Jeff J.

cheers, DaveK

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]