Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ open(2) — sys5 — Apollo

Media Vault

Software Library

Restoration Projects

Artifacts Sought



OPEN(2)         DOMAIN/IX Reference Manual (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 communication
              line:

              If O_NDELAY is set:

                   The open will return without waiting for car-
                   rier.

              If O_NDELAY is clear:

                   The open will block until carrier is present.



Printed 5/10/85                                            OPEN-1





OPEN(2)         DOMAIN/IX Reference Manual (SYS5)         OPEN(2)



     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 follows
              (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
     Upon successful completion, open returns the file descrip-
     tor.  Otherwise, it returns -1 and sets errno to indicate
     the error.

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
                    permission.

     [EACCES]       Oflag permission is denied for the named
                    file.

     [EISDIR]       The named file is a directory and oflag is
                    write or read/write.



OPEN-2                                            Printed 5/10/85





OPEN(2)         DOMAIN/IX Reference Manual (SYS5)         OPEN(2)



     [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 descrip-
                    tors 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 is set, the named file is a FIFO,
                    O_WRONLY is set, and no process has the file
                    open for reading.

     [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 5/10/85                                            OPEN-3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026