Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ open(2) — sys5 — Apollo Domain/IX SR9.5

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(2)

close(2)

creat(2)

dup(2)

fcntl(2)

lseek(2)

read(2)

umask(2)

write(2)



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





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