Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ () — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought



  OPEN(2)                                                   OPEN(2)



  NAME
       open - open for reading or writing

  SYNOPSIS
       #include <fcntl.h>
       int open (path, oflag [, mode] )
       char *path;
       int oflag, mode;

  DESCRIPTION
       Path points to a path name naming a file.  open opens a file
       descriptor for the named file and sets the file status flags
       according to the value of oflag.  For non-STREAMS [see
       intro(2)] files, oflag values are constructed by or-ing
       flags from the following list (only one of the first three
       flags below may be used):

       ORDONLY Open for reading only.

       OWRONLY Open for writing only.

       ORDWR   Open for reading and writing.

       ONONBLOCK
                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_NONBLOCK is set:

                     An open for reading-only will return without
                     delay.  An open for writing-only will return
                     an error if no process currently has the file
                     open for reading.

                If O_NONBLOCK is clear:

                     An open for reading-only will block until a
                     process opens the file for writing.  An open


  Page 1                                                   May 1989


















  OPEN(2)                                                   OPEN(2)



                     for writing-only will block until a process
                     opens the file for reading.

                When opening a file associated with a communication
                line:

                If O_NONBLOCK is set:

                     The open will return without waiting for
                     carrier.

                If O_NONBLOCK is clear:

                     The open will block until carrier is present.

       OAPPEND If set, the file pointer will be set to the end of
                the file prior to each write.

       OSYNC   When opening a regular file, this flag affects
                subsequent writes.  If set, each write(2) will wait
                for both the file data and file status to be
                physically updated.

       OCREAT  If the file exists, this flag has no effect.
                Otherwise, 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)].

       OTRUNC  If the file exists, its length is truncated to 0
                and the mode and owner are unchanged.



  Page 2                                                   May 1989


















  OPEN(2)                                                   OPEN(2)



       OEXCL   If O_EXCL and O_CREAT are set, open will fail if
                the file exists.

       ONOCTTY If path identifies a terminal device, the terminal
                device will not become the controlling terminal for
                the process.

       When opening a STREAMS file, oflag may be constructed from
       O_NDELAY or-ed with either O_RDONLY, O_WRONLY or O_RDWR.
       Other flag values are not applicable to STREAMS devices and
       have no effect on them.  The value of O_NDELAY affects the
       operation of STREAMS drivers and certain system calls [see
       read(2), getmsg(2), putmsg(2) and write(2)].  For drivers,
       the implementation of O_NDELAY is device-specific.  Each
       STREAMS device driver may treat this option differently.

       Certain flag values can be set following open as described
       in fcntl(2).

       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)].

       The named file is opened unless one or more of the following
       are true:

       [EACCES]       A component of the path prefix denies search
                      permission.

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

       [EAGAIN]       The file exists, mandatory file/record
                      locking is set, and there are outstanding
                      record locks on the file [see chmod (2)].

       [EEXIST]       O_CREAT and O_EXCL are set, and the named
                      file exists.


  Page 3                                                   May 1989


















  OPEN(2)                                                   OPEN(2)



       [EFAULT]       Path points outside the allocated address
                      space of the process.

       [EINTR]        A signal was caught during the open system
                      call.

       [EIO]          A hangup or error occurred during a STREAMS
                      open.

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

       [EMFILE]       NOFILES file descriptors are currently open.

       [EMULTIHOP]    Components of path require hopping to
                      multiple remote machines.

       [ENFILE]       The system file table is full.

       [ENOENT]       O_CREAT is not set and the named file does
                      not exist.

       [ENOLINK]      Path points to a remote machine, and the link
                      to that machine is no longer active.

       [ENOMEM]       The system is unable to allocate a send
                      descriptor.

       [ENOSPC]       O_CREAT and O_EXCL are set, and the file
                      system is out of inodes.

       [ENOSR]        Unable to allocate a stream.

       [ENOTDIR]      A component of the path prefix is not a
                      directory.

       [ENXIO]        The named file is a character special or
                      block special file, and the device associated
                      with this special file does not exist.



  Page 4                                                   May 1989


















  OPEN(2)                                                   OPEN(2)



       [ENXIO]        O_NDELAY is set, the named file is a FIFO,
                      O_WRONLY is set, and no process has the file
                      open for reading.

       [ENXIO]        A STREAMS module or driver open routine
                      failed.

       [EROFS]        The named file resides on a read-only file
                      system and oflag is write or read/write.

       [ETXTBSY]      The file is a pure procedure (shared text)
                      file that is being executed and oflag is
                      write or read/write.

  SEE ALSO
       chmod(2), close(2), creat(2), dup(2), fcntl(2), intro(2),
       lseek(2), read(2), getmsg(2), putmsg(2), umask(2), write(2).

  DIAGNOSTICS
       Upon successful completion, the file descriptor is returned.
       Otherwise, a value of -1 is returned and errno is set to
       indicate the error.




















  Page 5                                                   May 1989
















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