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

操作系统开发

开发平台:

C/C++

  1. CLOSE(2)                  Minix Programmer's Manual                   CLOSE(2)
  2. NAME
  3.      close - delete a descriptor
  4. SYNOPSIS
  5.      #include <unistd.h>
  6.      int close(int d)
  7. DESCRIPTION
  8.      The close call deletes a descriptor from the per-process object reference
  9.      table.   If  this is the last reference to the underlying object, then it
  10.      will be deactivated.  For example, on  the  last  close  of  a  file  the
  11.      current  seek pointer associated with the file is lost; on the last close
  12.      of a TCP/IP descriptor associated naming information and queued data  are
  13.      discarded;  on the last close of a file holding an advisory lock the lock
  14.      is released (see further fcntl(2)).
  15.      A close of all of a process's descriptors is automatic on exit, but since
  16.      there  is  a limit on the number of active descriptors per process, close
  17.      is necessary for programs that deal with many descriptors.
  18.      When a process forks (see fork(2)), all descriptors  for  the  new  child
  19.      process  reference  the same objects as they did in the parent before the
  20.      fork.  If a new process is then to be run using  execve(2),  the  process
  21.      would normally inherit these descriptors.  Most of the descriptors can be
  22.      rearranged with dup2(2) or  deleted  with  close  before  the  execve  is
  23.      attempted,  but  if some of these descriptors will still be needed if the
  24.      execve fails, it is necessary to arrange for them to  be  closed  if  the
  25.      execve  succeeds.  For this reason, the call ``fcntl(d, F_SETFD, flags)''
  26.      is provided, that can be used to mark a descriptor  "close  on  exec"  by
  27.      setting the FD_CLOEXEC flag:
  28.           fcntl(d, F_SETFD, fcntl(d, F_GETFD) | FD_CLOEXEC);
  29. RETURN VALUE
  30.      Upon successful completion, a value of 0 is returned.  Otherwise, a value
  31.      of  -1  is  returned  and  the  global  integer  variable errno is set to
  32.      indicate the error.
  33. ERRORS
  34.      Close will fail if:
  35.      [EBADF]        D is not an active descriptor.
  36. SEE ALSO
  37.      open(2), pipe(2), execve(2), fcntl(2).
  38. 4BSD                              May 22, 1986                               1