diff --git a/lang/cem/libcc.ansi/stdio/fopen.c b/lang/cem/libcc.ansi/stdio/fopen.c index 5fe89be2..bc2e1ed6 100644 --- a/lang/cem/libcc.ansi/stdio/fopen.c +++ b/lang/cem/libcc.ansi/stdio/fopen.c @@ -88,7 +88,7 @@ fopen(const char *name, const char *mode) */ if ((rwflags & O_TRUNC) || (((fd = _open(name, rwmode)) < 0) - && (flags & _IOWRITE))) { + && (rwflags & O_CREAT))) { if (((fd = _creat(name, PMODE)) > 0) && flags | _IOREAD) { (void) _close(fd); fd = _open(name, rwmode); diff --git a/lang/cem/libcc.ansi/stdio/freopen.c b/lang/cem/libcc.ansi/stdio/freopen.c index af384b70..41887f86 100644 --- a/lang/cem/libcc.ansi/stdio/freopen.c +++ b/lang/cem/libcc.ansi/stdio/freopen.c @@ -68,7 +68,7 @@ freopen(const char *name, const char *mode, FILE *stream) if ((rwflags & O_TRUNC) || (((fd = _open(name, rwmode)) < 0) - && (flags & _IOWRITE))) { + && (rwflags & O_CREAT))) { if (((fd = _creat(name, PMODE)) < 0) && flags | _IOREAD) { (void) _close(fd); fd = _open(name, rwmode);