Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ open(2) — svr3 — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(2)

close(2)

creat(2)

dup(2)

fcntl(2)

intro(2)

lseek(2)

read(2)

getmsg(2)

putmsg(2)

umask(2)

write(2)



OPEN(2-SVR3)        RISC/os Reference Manual         OPEN(2-SVR3)



NAME
     open - open for reading or writing

SYNOPSIS
     #include <bsd/sys/types.h>
     #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.

     ONDELAY
             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 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_NDELAY is clear:

                  An open for reading-only will block until a
                  process opens the file for writing.  An open
                  for writing-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



                        Printed 11/19/92                   Page 1





OPEN(2-SVR3)        RISC/os Reference Manual         OPEN(2-SVR3)



                  carrier.

             If O_NDELAY 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 sub-
             sequent 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.  Other-
             wise, the owner ID of the file is set to the effec-
             tive user ID of the process, the group ID of the
             file is set to the effective group ID of the pro-
             cess, 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.

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

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



 Page 2                 Printed 11/19/92





OPEN(2-SVR3)        RISC/os Reference Manual         OPEN(2-SVR3)



     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 lock-
                    ing 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.

     [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 multi-
                    ple 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 sys-
                    tem is out of inodes.

     [ENOSR]        Unable to allocate a stream.

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




                        Printed 11/19/92                   Page 3





OPEN(2-SVR3)        RISC/os Reference Manual         OPEN(2-SVR3)



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

     [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 4                 Printed 11/19/92



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