Mail Archives: djgpp-workers/2001/09/15/16:35:29
> from epunzip.c:
> epoutfile = open("/dev/null",
> O_WRONLY | O_BINARY | O_CREAT | O_EXCL,
>
> This fails inside `open', since it sees O_CREAT, decides that the file
> should be created anew, calls __file_exists to see if /dev/null
> exists, and since __file_exists returns non-zero, `open' fails.
>
> This seems like a bug in epunzip.c, doesn't it? Why should it insist
> on creating /dev/null?
>
> OTOH, I don't understand how does it work on other platforms? Oh, I
> see: __file_exists fails for devices on every other platform. Does
> this form of `open' work on GNU/Linux?
This open does not work on other Unix systems I tested. The O_CREAT
isn't the problem it the O_EXCL - which fails if the specified file
exists. This is a bug in epunzip (2 places). I don't think we
should need O_CREAT either, but O_EXCL is the problem.
- Raw text -