NAME | SYNOPSIS | FEATURES | DESCRIPTION | RETURN VALUE | ATTRIBUTES | SEE ALSO
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int open(const char *path, int oflag, ... /*mode_t mode */);
MSDOSFS, NFS_CLIENT, UFS
The path parameter points to a path name naming a file. The open function opens a file descriptor for the named file and sets the file status flags according to the value of oflag. The oflag values are constructed by OR-ing flags from the following list (only one of the first three flags below may be used):
Open for reading only.
Open for writing only.
Open for reading and writing.
This flag may affect subsequent reads and writes (see read(2POSIX) and write(2POSIX)). When opening a block special or character special file that supports nonblocking, this flags has the following effect:
If O_NONBLOCK is set, the open will return without waiting for the device to be ready or available. Subsequent behavior of the device is device-specific.
If O_NONBLOCK is not set, the open will block until the device is ready or available.
If set, the file pointer will be set to the end of the file prior to each write.
If the file exists, this flag has no effect. Otherwise, the owner ID of the file is set to the user ID of the c_actor, the group ID of the file is set to the group ID of the c_actor, and the low-order 12 bits of the file mode are set to the value of mode.
If the file exists, its length is truncated to 0 and the mode and owner are unchanged.
If O_EXCL and O_CREAT are set, open will fail if the file exists.
The file pointer used to mark the current position within the file is set to the beginning of the file.
The new file descriptor is set to remain open across afexec (2K) system calls. See fcntl(2POSIX).
Upon successful completion, open returns the open file descriptor; otherwise it returns -1 and sets errno to indicate one of the following error conditions:
A component of the path prefix is not a directory.
O_CREAT is not set and the named file does not exist.
A component of the path prefix denies search permission.
oflag permission is denied for the named file.
The named file is a directory and oflag is write or read/write.
The named file resides on a read-only file system and oflag is write or read/write.
OPEN_MAX file descriptors are currently open.
The named file is a character special or block special file, and the device associated with this special file does not exist.
In user mode, path points outside the allocated address space of the c_actor. In supervisor mode, this is not detected, and the state of the target is unknown.
O_CREAT and O_EXCL are set, and the named file exists.
The calling thread has been aborted during the open system call.
The system file table is full.
The length of a component of path exceeds NAME_MAX characters or the length of path exceeds PATH_MAX characters.
Too many symbolic links or symbolic ports were encountered during analysis of path.
An I/O error occurred while reading from or writing to the file system.
One or more flags in oflag are not currently supported.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | RETURN VALUE | ATTRIBUTES | SEE ALSO