Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Oct 1997 15:54:46 -0700 (PDT)
From:      mdean <mdean@best.com>
To:        Terry Lambert <tlambert@primenet.com>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Is this a bug, or just a feature.
Message-ID:  <Pine.SGI.3.95.971011154726.27647A-100000@shellx.best.com>
In-Reply-To: <199710112201.PAA05910@usr06.primenet.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Sorry, I was confused I meant
   open ("/dev/fd0", O_RDWR|O_WRONLY, 0);
which gives a valid descriptor when executed(and a disk is in the drive)

O_RDWR+O_WRONLY = O_ACCMODE which I am at least using to mask the oflags
and running the remaining bits through a switch statement checking for
O_RDONLY , O_RDWR, O_WRONLY (for this particular device these actually
matter, I am using them to determine the direction of the port for some
control regs) so at the end of the switch i have a default: return (EPERM);
since having O_RDONLY and O_RDWR set at the same time is meaningless (they
are mutually exclusive for me). I was just suprised this isn't caught
before it gets passed to the driver.

On Sat, 11 Oct 1997, Terry Lambert wrote:

> > Shouldn't it be an error to call open("/dev/fd0", RD_ONLY|WR_ONLY,0)?
> > I guess if your device doesn't like being read-only and write-only then it
> > should look at oflags for itself? Or should this be caught at the syscall
> > and rejected?
> 
> Do you mean O_RDONLY|O_WRONLY?
> 
> These are not bit values:
> 
> #define O_RDONLY        0x0000          /* open for reading only */  
> #define O_WRONLY        0x0001          /* open for writing only */
> #define O_RDWR          0x0002          /* open for reading and writing */
> 
> (O_RDONLY|O_WRONLY) == O_WRONLY
> 
> 
> 					Terry Lambert
> 					terry@lambert.org
> ---
> Any opinions in this posting are my own and not those of my present
> or previous employers.
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SGI.3.95.971011154726.27647A-100000>