The operating modes affect how input and output operations using a file
descriptor work. These flags are set by
open and can be fetched
and changed with
writeoperations write the data at the end of the file, extending it, regardless of the current file position. This is the only reliable way to append to a file. In append mode, you are guaranteed that the data you write will always go to the current end of the file, regardless of other processes writing to the file. Conversely, if you simply set the file position to the end of file and write, then another process can extend the file after you set the file position but before you write, resulting in your data appearing someplace before the real end of file.
readrequests on the file can return immediately with a failure status if there is no input immediately available, instead of blocking. Likewise,
writerequests can also return immediately with a failure status if the output can't be written immediately.
Note that the
O_NONBLOCK flag is overloaded as both an I/O
operating mode and a file name translation flag; see section Open-time Flags.
O_NONBLOCK, provided for compatibility with BSD. It is not defined by the POSIX.1 standard.
The remaining operating modes are BSD and GNU extensions. They exist only on some systems. On other systems, these macros are not defined.
SIGIOsignals will be generated when input is available. See section Interrupt-Driven Input.
Asynchronous input mode is a BSD feature.
writecall will make sure the data is reliably stored on disk before returning.
Synchronous writing is a BSD feature.
O_FSYNC. They have the same value.
readwill not update the access time of the file. See section File Times. This is used by programs that do backups, so that backing a file up does not count as reading it. Only the owner of the file or the superuser may use this bit.
This is a GNU extension.
Go to the first, previous, next, last section, table of contents.