open man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



open(2)								       open(2)

NAME
     open - open for reading or writing

C SYNOPSIS
     #include <sys/types.h>
     #include <sys/stat.h>
     #include <fcntl.h>

     int open (const char *path, int oflag, ... /* mode_t 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.	oflag values are constructed by OR-ing Flags from the
     following list (only one of the first three flags below may be used):

     O_RDONLY
	    Open for reading only.

     O_WRONLY
	    Open for writing only.

     O_RDWR Open for reading and writing.

     O_NDELAY or O_NONBLOCK
	    These flags may affect subsequent reads and writes [see read(2)
	    and write(2)].  If both O_NDELAY and O_NONBLOCK are set,
	    O_NONBLOCK will take precedence.

	    When opening a FIFO with O_RDONLY or O_WRONLY set:

		    If O_NDELAY or 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_NDELAY and O_NONBLOCK are 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 or O_NONBLOCK is set:  The open will return
		    without waiting for the device to be ready or available;
		    subsequent behavior of the device is device specific.

		    If O_NDELAY and O_NONBLOCK are clear:  The open will block
		    until the device is ready or available.

									Page 1

open(2)								       open(2)

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

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

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

     O_RSYNCWhen opening a regular file, this flag affects subsequent reads.
	    If set, and either O_SYNC or O_DSYNC is set then each read(2) will
	    wait for the file to be in the same state as O_SYNC or O_DSYNC
	    would require for writes.

     O_NOCTTY
	    If set and the file is a terminal, the terminal will not be
	    allocated as the calling process's controlling terminal.

     O_CREATIf the file exists, this flag has no effect, except as noted under
	    O_EXCL below.  Otherwise, the file is created and the owner ID of
	    the file is set to the effective user IDs of the process, the
	    group ID of the file is set to the effective group IDs of the
	    process or to the group ID of the directory in which the file is
	    being created.  This is determined as follows:
		 If the underlying filesystem was mounted with the BSD file
		 creation semantics flag [see fstab(4)] or the S_ISGID bit is
		 set [see chmod(2)] on the parent directory, then the group ID
		 of the new file is set to the group ID of the parent
		 directory, otherwise it is set to the effective group ID of
		 the calling process.
	    If the group ID of the new file does not match the effective group
	    ID or one of the supplementary groups IDs, the S_ISGID bit is
	    cleared. The access permission 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_TRUNCIf the file exists and is a regular file, and the file is
	    successfully opened O_RDWR or O_WRONLY, its length is truncated to
	    0 and the mode and owner are unchanged.  It will have no effect on
	    FIFO special files or terminal device files.  It's effect on other
	    files types is implementation-dependent.  The result of using
	    O_TRUNC with O_RDONLY is undefined.

									Page 2

open(2)								       open(2)

     O_EXCL If O_EXCL and O_CREAT are set, open will fail if the file exists.
	    The check for the existence of the file and the creation of the
	    file if it does not exist is atomic with respect to other
	    processes executing open naming the same filename in the same
	    directory with O_EXCL and O_CREAT set.

     O_LCFLUSH
	    If set, when all copies of a file descriptor are closed, all
	    modified buffers associated with the file will be written back to
	    the physical medium.  O_LCFLUSH is a Silicon Graphics extension.

     O_LCINVAL
	    If set, when all copies of a file descriptor are closed, all
	    modified buffers associated with the file will be written back to
	    the physical medium, then invalidated, immediately freeing the
	    buffers for other use.  The process doing the last close must be
	    able to aquire write access at the time of last close for the
	    cache to be invalidated.  O_LCINVAL is a Silicon Graphics
	    extension.

     O_DIRECT
	    If set, reads and writes on the resulting file descriptor will be
	    performed directly to or from the user program buffer, provided
	    appropriate size and alignment restrictions are met and pages are
	    not locked in memory by any process.  Refer to the F_SETFL and
	    F_DIOINFO commands in the fcntl(2) manual entry for information
	    about how to determine the alignment constraints.  Refer to the
	    mlock(3C), read(2) and write(2) manual entries for information on
	    direct I/O involving pages that are locked in memory.  O_DIRECT is
	    a Silicon Graphics extension and is only supported on local EFS
	    and XFS file systems, and remote BDS file systems. In Irix 6.5.24
	    and beyond, O_DIRECT is also supported on remote NFS Version 3
	    file systems.

     When opening a STREAMS file, oflag may be constructed from O_NDELAY or
     O_NONBLOCK 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 values of O_NDELAY and O_NONBLOCK affect 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 and O_NONBLOCK is
     device specific.  Each STREAMS device driver may treat these options
     differently.

     When open is invoked to open a named stream, and the connld module [see
     connld(7)] has been pushed on the pipe, open blocks until the server
     process has issued an I_RECVFD ioctl [see streamio(7)] to receive the
     file descriptor.

     If path is a symbolic link and O_CREAT and O_EXCL are set, the link is
     not followed.

									Page 3

open(2)								       open(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 the lowest numbered file descriptor available
     and is set to remain open across exec system calls [see fcntl(2)].

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

     If O_CREAT is set and the file did not previously exist, upon successful
     completion open marks for update the st_atime, st_ctime and st_mtime
     fields of the file and the st_ctime and st_mtime fields of the parent
     directory.

     If O_TRUNC is set and the file did previously exist, upon successful
     completion open marks for update the st_ctime and st_mtime fields of the
     file.

     There is a system enforced limit on the number of open file descriptors
     per process {OPEN_MAX}, whose value is returned by the getdtablesize(2)
     function.

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

     EACCES The file does not exist and write permission is denied by the
	    parent directory of the file to be created.

     EACCES O_CREAT or O_TRUNC is specified and write permission is denied.

     EACCES A component of the path prefix denies search permission.

     EACCES The file is a character or block device file and the file system
	    in which it resides has been mounted with the nodev option [see
	    fstab(4)].

     EACCES oflag permission is denied for an existing file.

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

     EBUSY  path points to a device special file and the device is in the
	    closing state.

     EDQUOT O_CREAT is specified, the file does not exist, and the directory
	    in which the entry for the new file is being placed cannot be
	    extended either because the user's quota of disk blocks on the
	    file system containing the directory has been exhausted or the
	    user's quota of inodes on the file system on which the file is
	    being created has been exhausted.

									Page 4

open(2)								       open(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.

     EINVAL An attempt was made to open a file not in an EFS, XFS, BDS or NFS
	    Version 3 file system with O_DIRECT set.

     EIO    A hangup or error occurred during the open of the STREAMS-based
	    device.

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

     ELOOP  Too many symbolic links were encountered in translating path.

     EMFILE The process has too many open files [see getrlimit(2)].

     ENAMETOOLONG
	    The length of the path argument exceeds {PATH_MAX}, or the length
	    of a path component exceeds {NAME_MAX} while {_POSIX_NO_TRUNC} is
	    in effect.

     ENFILE The system file table is full.

     ENODEV path points to a device special file and the device is not in the
	    activated state.

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

     ENOENT O_CREAT is set and a component of the path prefix does not exist
	    or is the null pathname.

     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
	    or the directory in which the entry for the new file is being
	    placed cannot be extended because there is no space left on the
	    file system containing the directory.

     ENOSPC O_CREAT is set and the directory that would contain the file
	    cannot be extended.

     ENOSR  Unable to allocate a stream.

     ENOTDIRA 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 5

open(2)								       open(2)

     ENXIO  O_NDELAY or O_NONBLOCK 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.

     EOPNOTSUPP
	    An attempt was made to open a socket (not currently supported).

     EPERM  path points to a device special file, the device is in the setup
	    state, and the calling process does not have the P_DEV privilege.

     ETIMEDOUT
	    The object of the open is located on a remote system which is not
	    available [see intro(2)].

     EROFS  The named file resides on a read-only file system and either
	    O_WRONLY, O_RDWR, O_CREAT, or O_TRUNC is set in oflag (if the file
	    does not exist).

SEE ALSO
     chmod(2), close(2), creat(2), dup(2), exec(2), fcntl(2),
     getdtablesize(2), getmsg(2), getrlimit(2), intro(2), lseek(2), putmsg(2),
     read(2), stat(2), stat(5), 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 6

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net