(open-file fname flags [perms])
→ fd (procedure) POSIXopen()
Perms defaults to #o666. Flags is an integer bitmask, composed by adding together one or more of the following constants:
open/read
,open/write
,open/read+write
,open/append
,open/create
,open/exclusive
,open/truncate
. It is an error unless exactly one of theopen/read
,open/write
, oropen/read+write
flags is provided.
O_NONBLOCK When opening a FIFO with O_RDONLY or O_WRONLY set:
If O_NONBLOCK is set, an open() for reading-only shall return without delay. An open() for writing-only shall return an error if no process currently has the file open for reading.
If O_NONBLOCK is clear, an open() for reading-only shall block the calling thread until a thread opens the file for writing. An open() for writing-only shall block the calling thread until a thread opens the file for reading.
When opening a block special or character special file that supports non-blocking opens:
If O_NONBLOCK is set, the open() function shall return without blocking for the device to be ready or available. Subsequent behavior of the device is device-specific.
If O_NONBLOCK is clear, the open() function shall block the calling thread until the device is ready or available before returning.
Otherwise, the O_NONBLOCK flag shall not cause an error, but it is unspecified whether the file status flags will include the O_NONBLOCK flag.
O_CLOEXEC If set, the FD_CLOEXEC flag for the new file descriptor shall be set.
O_NOFOLLOW If path names a symbolic link, fail and set errno to [ELOOP].