home *** CD-ROM | disk | FTP | other *** search
-
- DUP(2) UNIX Programmer's Manual DUP(2)
-
- NNAAMMEE
- dduupp, dduupp22 - duplicate an existing file descriptor
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<uunniissttdd..hh>>
-
- _i_n_t
- dduupp(_i_n_t _o_l_d_d)
-
- _i_n_t
- dduupp22(_i_n_t _o_l_d_d, _i_n_t _n_e_w_d)
-
- DDEESSCCRRIIPPTTIIOONN
- DDuupp() duplicates an existing object descriptor and returns its value to
- the calling process (_n_e_w_d = dduupp(_o_l_d_d)). The argument _o_l_d_d is a small non
- negative integer index in the perprocess descriptor table. The value
- must be less than the size of the table, which is returned by
- getdtablesize(2). The new descriptor returned by the call is the lowest
- numbered descriptor currently not in use by the process.
-
- The object referenced by the descriptor does not distinguish between _o_l_d_d
- and _n_e_w_d in any way. Thus if _n_e_w_d and _o_l_d_d are duplicate references to
- an open file, read(2), write(2) and lseek(2) calls all move a single
- pointer into the file, and append mode, nonblocking I/O and asynchronous
- I/O options are shared between the references. If a separate pointer in
- to the file is desired, a different object reference to the file must be
- obtained by issuing an additional open(2) call. The closeonexec flag
- on the new file descriptor is unset.
-
- In dduupp22(), the value of the new descriptor _n_e_w_d is specified. If this
- descriptor is already in use, the descriptor is first deallocated as if a
- close(2) call had been done first.
-
- RREETTUURRNN VVAALLUUEESS
- The value 1 is returned if an error occurs in either call. The external
- variable _e_r_r_n_o indicates the cause of the error.
-
- EERRRROORRSS
- DDuupp() and dduupp22() fail if:
-
- [EBADF] _O_l_d_d or _n_e_w_d is not a valid active descriptor
-
- [EMFILE] Too many descriptors are active.
-
- SSEEEE AALLSSOO
- accept(2), open(2), close(2), fcntl(2), pipe(2), socket(2),
- socketpair(2), getdtablesize(2)
-
- SSTTAANNDDAARRDDSS
- DDuupp() and dduupp22() are expected to conform to IEEE Std 1003.11988
- (``POSIX'').
-
- 4th Berkeley Distribution March 10, 1991 1
-
-
-
-
-
-
-
-
-
-
-