OPEN.2
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:6k
源码类别:

操作系统开发

开发平台:

C/C++

  1. OPEN(2)                   Minix Programmer's Manual                    OPEN(2)
  2. NAME
  3.      open - open a file for reading or writing, or create a new file
  4. SYNOPSIS
  5.      #include <sys/types.h>
  6.      #include <fcntl.h>
  7.      int open(const char *path, int flags [, mode_t mode])
  8. DESCRIPTION
  9.      Open opens the file path for reading and/or writing, as specified by  the
  10.      flags  argument  and  returns  a  descriptor  for  that  file.  The flags
  11.      argument may indicate the file is to be created if it  does  not  already
  12.      exist (by specifying the O_CREAT flag), in which case the file is created
  13.      with mode mode as described in chmod(2)  and  modified  by  the  process'
  14.      umask value (see umask(2)).
  15.      Path is the address of a string of ASCII characters representing  a  path
  16.      name,  terminated by a null character.  The flags specified are formed by
  17.      or'ing the following values
  18.           O_RDONLY    open for reading only
  19.           O_WRONLY    open for writing only
  20.           O_RDWR      open for reading and writing
  21.           O_NONBLOCK  do not block on open
  22.           O_APPEND    append on each write
  23.           O_CREAT     create file if it does not exist
  24.           O_TRUNC     truncate size to 0
  25.           O_EXCL      error if create and file exists
  26.      Opening a file with O_APPEND set causes each write  on  the  file  to  be
  27.      appended  to  the  end.  If O_TRUNC is specified and the file exists, the
  28.      file is truncated to zero length.  If O_EXCL is set with O_CREAT, then if
  29.      the  file already exists, the open returns an error.  This can be used to
  30.      implement a simple exclusive access locking mechanism.  If O_EXCL is  set
  31.      and  the last component of the pathname is a symbolic link, the open will
  32.      fail even if the symbolic link points to a  non-existent  name.   If  the
  33.      O_NONBLOCK  flag  is  specified  and  the  open  call would result in the
  34.      process being blocked for some reason, the open returns immediately.
  35.      Upon  successful  completion  a  non-negative  integer  termed   a   file
  36.      descriptor  is  returned.   The  file  pointer  used  to mark the current
  37.      position within the file is set to the beginning of the file.
  38.      The new descriptor is set to remain open across execve system calls;  see
  39.      close(2).
  40.      The  system  imposes  a  limit  on  the  number   of   descriptors   open
  41.      simultaneously by one process.
  42. 4BSD                              May 14, 1986                               1
  43. OPEN(2)                   Minix Programmer's Manual                    OPEN(2)
  44. ERRORS
  45.      The named file is opened unless one or more of the following are true:
  46.      [ENOTDIR]      A component of the path prefix is not a directory.
  47.      [ENAMETOOLONG] The path name exceeds PATH_MAX characters.
  48.      [ENOENT]       O_CREAT is not set and the named file does not exist.
  49.      [ENOENT]       A component of the path name  that  must  exist  does  not
  50.                     exist.
  51.      [EACCES]       Search permission is denied for a component  of  the  path
  52.                     prefix.
  53.      [EACCES]       The required permissions (for reading and/or writing)  are
  54.                     denied for the named file.
  55.      [EACCES]       O_CREAT is specified, the file does  not  exist,  and  the
  56.                     directory  in  which  it  is to be created does not permit
  57.                     writing.
  58.      [EACCES]       A device to be opened  for  writing  is  physically  write
  59.                     protected.
  60.      [ELOOP]        Too many symbolic links were  encountered  in  translating
  61.                     the pathname.  (Minix-vmd)
  62.      [EISDIR]       The named file is a directory, and the  arguments  specify
  63.                     it is to be opened for writing.
  64.      [EROFS]        The named file resides on a read-only file system, and the
  65.                     file is to be modified.
  66.      [EMFILE]       The system limit for open file descriptors per process has
  67.                     already been reached.
  68.      [ENFILE]       The system file table is full.
  69.      [ENXIO]        The named file is a character  special  or  block  special
  70.                     file,  and  the  device  associated with this special file
  71.                     does not exist.
  72.      [ENOSPC]       O_CREAT is specified, the file does  not  exist,  and  the
  73.                     directory  in  which  the  entry for the new file is being
  74.                     placed cannot be extended because there is no  space  left
  75.                     on the file system containing the directory.
  76. 4BSD                              May 14, 1986                               2
  77. OPEN(2)                   Minix Programmer's Manual                    OPEN(2)
  78.      [ENOSPC]       O_CREAT is specified, the file does not exist,  and  there
  79.                     are no free inodes on the file system on which the file is
  80.                     being created.
  81.      [EIO]          An I/O error occurred while making the directory entry  or
  82.                     allocating the inode for O_CREAT.
  83.      [EFAULT]       Path points outside the process's allocated address space.
  84.      [EEXIST]       O_CREAT and O_EXCL were specified and the file exists.
  85. SEE ALSO
  86.      chmod(2),  close(2),  dup(2),  fcntl(2),  lseek(2),  read(2),   write(2),
  87.      umask(2).
  88. 4BSD                              May 14, 1986                               3