Messages in this thread |  | | Subject | Re: access() says EROFS even for device files if /dev is mounted RO | Date | Tue, 28 Nov 2000 15:04:31 +0100 (MET) | From | (Rogier Wolff) |
| |
Andries Brouwer wrote: > On Mon, Nov 27, 2000 at 10:47:06PM +0100, Rogier Wolff wrote: > > Andries Brouwer wrote: > > > > access("/dev/tty2", R_OK|W_OK) = -1 EROFS (Read-only file system) > > > > > You misunderstand the function of access(). The standard says > > > > > > [EROFS] write access shall fail if write access is requested > > > for a file on a read-only file system > > > > The intent of the "access" call is to tell you if you will be able to > > open the given pathname for the requested permissions. That this is > > inherently racey is not the fault of the access system call. > > > > The INTENT of this paragraph from the standard is to specify when to > > return the error value EROFS. The "for a -=file=-" part to me > > indicates that a valid interpretation is that this does not apply to > > device nodes. > > You optimist! > A standard is not a text that should be read with the attitude > "they write this but I know that they really meant that". > A standard is precise. > > In particular it defines the concepts used. For file it says: > > File > An object that can be written to, or read from, or both. > A file has certain attributes, including access permissions and type. > File types include regular file, character special file, block special > file, FIFO special file, symbolic link, socket, and directory. > Other types of files may be supported by the implementation.
Ok, so if you read the standard carefully you get a bogus result.
Question: Was it meant this way, or did someone just make a mistake (which happened to slip through and get approved into the standard)?
I happen to think the second.
- Is it desirable to have a write-open of a device on a read-only fail? I don't think so. You can't open the initial console etc etc.
- Is it desirable to have access (W_OK) and "open-for-write" return different results? I don't think so.
- Are there other systems that adhere to the standard as written?
Roger.
-- ** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2137555 ** *-- BitWizard writes Linux device drivers for any device you may have! --* * There are old pilots, and there are bold pilots. * There are also old, bald pilots. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |