RE: incompatible open modes

From: Ata, John (John.Ata@DigitalNet.com)
Date: Thu Jul 31 2003 - 13:29:12 EST


Hi Andries,

If that's what's been decided... I presume for backwards compatability,
but it does seem rather odd though. After all, it seems like O_RDONLY
is supposed to safeguard someone from accidently overwriting a file.
Otherwise why not automatically open everything read/write? Going down
the same path, what's next: automatically write enabling a file which
has been openend for O_RDONLY the next time someone performs a write
operation on it? ;-)

Take care,
John

-----Original Message-----
From: Andries Brouwer [mailto:aebr@win.tue.nl]
Sent: Thursday, July 31, 2003 1:36 PM
To: Zack Brown
Cc: Ata, John; Linux Kernel Mailing List
Subject: Re: incompatible open modes

> On Thu, Jul 31, 2003 at 12:09:14PM -0400, Ata, John wrote:

> > the manpage on "open" states that if a file is opened
"O_RDONLY|O_TRUNC",
> > the O_TRUNC is either ignored or an error is returned. The 2.4
kernel
> > appears to cheerfully truncate the file on open. I wondered
which
> > behavior is actually intended.
> >
> > O_TRUNC
> > If the file already exists and is a regular file and the
open
> > mode allows writing (i.e., is O_RDWR or O_WRONLY) it will
be
> > truncated to length 0.
> > Otherwise the effect of O_TRUNC is unspecified.
> > (On many Linux versions it will be ignored; on other versions
> > it will return an error.)

This was just recently discussed, and it became clear that the
parenthetical
remark only led to confusion. It has been deleted. Instead

       The (undefined) effect of O_RDONLY | O_TRUNC various among
       implementations. On many systems the file is actually
       truncated.

has been added.

Andries

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jul 31 2003 - 22:00:51 EST