OPEN(2) DOMAIN/IX SYS5 OPEN(2)
NAME
open - open for reading or writing
USAGE
#include <fcntl.h>
int open(path, oflag [, mode ])
char *path;
int oflag, mode;
DESCRIPTION
Open opens a file descriptor for the file named by path, and
sets the file status flags according to oflag. Oflag values
are constructed by OR-ing flags from the following list
(only one of the first three flags below may be used in any
combination):
O_RDONLY Open for reading only.
O_WRONLY Open for writing only.
O_RDWR Open for reading and writing.
O_NDELAY This flag may affect subsequent reads and writes.
See read(2) and write(2).
When opening a FIFO with O_RDONLY or O_WRONLY set:
If O_NDELAY is set:
An open for read-only will return without
delay. An open for write-only will return an
error if no process currently has the file
open for reading.
If O_NDELAY is clear:
An open for read-only will block until a pro-
cess opens the file for writing. An open for
write-only will block until a process opens
the file for reading.
When opening a file associated with a communica-
tion line:
If O_NDELAY is set:
The open will return without waiting for car-
rier.
Printed 12/4/86 OPEN-1
OPEN(2) DOMAIN/IX SYS5 OPEN(2)
If O_NDELAY is clear:
The open will block until carrier is present.
O_APPEND If set, the file pointer will be set to the end of
the file prior to each write.
O_CREAT If the file exists, this flag has no effect. Oth-
erwise, the owner ID of the file is set to the
effective user ID of the process, the group ID of
the file is set to the effective group ID of the
process, and the low-order 12 bits of the file
mode are set to the value of mode modified as fol-
lows (see creat(2)):
All bits set in the file mode creation mask
of the process are cleared. See umask(2).
The "save text image after execution bit" of
the mode is cleared. See chmod(2).
O_TRUNC If the file exists, its length is truncated to 0
and the mode and owner are left unchanged.
O_EXCL 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 exec
system calls. See fcntl(2).
RETURN VALUE
A successful call returns a non-negative integer file
descriptor. A failed call returns -1 and sets errno as
indicated below.
ERRORS
The file is opened unless one or more of the following is
true:
[ENOTDIR] A component of the path prefix is not a directory.
[ENOENT] O_CREAT is not set and the named file does not
exist.
[EACCES] A component of the path prefix denies search per-
mission.
OPEN-2 Printed 12/4/86
OPEN(2) DOMAIN/IX SYS5 OPEN(2)
[EACCES] Oflag permission is denied for the named file.
[EISDIR] The named file is a directory and oflag is write
or read/write.
[EROFS] The named file resides on a read-only file system
and oflag is write or read/write.
[EMFILE] More than the maximum number of file descriptors
allowed are currently open.
[ENXIO] The named file is a character special or block
special file, and the device associated with this
special file does not exist.
[ETXTBSY] The file is a pure procedure (shared text) file
that is being executed and oflag is write or
read/write.
[EFAULT] Path points outside the allocated address space of
the process.
[EEXIST] O_CREAT and O_EXCL are set, and the named file
exists.
[ENXIO] O_NDELAY and O_WRONLY are set, the named file is a
FIFO, and no process has the file open for read-
ing.
[EINTR] A signal was caught during the open system call.
[ENFILE] The system file table is full.
RELATED INFORMATION
chmod(2), close(2), creat(2), dup(2), fcntl(2), lseek(2),
read(2), umask(2), write(2)
Printed 12/4/86 OPEN-3