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

操作系统开发

开发平台:

C/C++

  1. DUP(2)                    Minix Programmer's Manual                     DUP(2)
  2. NAME
  3.      dup, dup2 - duplicate a descriptor
  4. SYNOPSIS
  5.      #include <unistd.h>
  6.      int dup(int oldd)
  7.      int dup2(int oldd, int newd)
  8. DESCRIPTION
  9.      Dup duplicates an existing descriptor.  The argument oldd is a small non-
  10.      negative  integer  index  in the per-process descriptor table.  The value
  11.      must be less than OPEN_MAX, the size of the table.   The  new  descriptor
  12.      returned  by  the  call,  let's  name  it  newd,  is  the lowest numbered
  13.      descriptor that is not currently in use by the process.
  14.      The object referenced by the  descriptor  does  not  distinguish  between
  15.      references  using  oldd  and  newd in any way.  Thus if newd and oldd are
  16.      duplicate references to an open  file,  read(2),  write(2)  and  lseek(2)
  17.      calls  all  move  a  single  pointer into the file, and append mode, non-
  18.      blocking  I/O  and  asynchronous  I/O  options  are  shared  between  the
  19.      references.   If a separate pointer into the file is desired, a different
  20.      object reference to the file must be obtained by  issuing  an  additional
  21.      open(2)  call.   The  close-on-exec  flag  on  the new file descriptor is
  22.      unset.
  23.      In the second form of the call, the value of newd desired  is  specified.
  24.      If this descriptor is already in use, the descriptor is first deallocated
  25.      as if a close(2) call had been done first.  Newd  is  not  closed  if  it
  26.      equals oldd.
  27. RETURN VALUE
  28.      The value -1 is returned if an error occurs in either call.  The external
  29.      variable errno indicates the cause of the error.
  30. ERRORS
  31.      Dup and dup2 fail if:
  32.      [EBADF]        Oldd or newd is not a valid active descriptor
  33.      [EMFILE]       Too many descriptors are active.
  34. NOTES
  35.      Dup and dup2 are now implemented using the F_DUPFD function of  fcntl(2),
  36.      although  the  old  system  call  interfaces  still  exist to support old
  37.      programs.
  38. 4BSD                              May 13, 1986                               1
  39. DUP(2)                    Minix Programmer's Manual                     DUP(2)
  40. SEE ALSO
  41.      open(2), close(2), fcntl(2), pipe(2).
  42. 4BSD                              May 13, 1986                               2