diff options
Diffstat (limited to 'lib/libc/sys/dup.2')
-rw-r--r-- | lib/libc/sys/dup.2 | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/lib/libc/sys/dup.2 b/lib/libc/sys/dup.2 deleted file mode 100644 index 58a967d..0000000 --- a/lib/libc/sys/dup.2 +++ /dev/null @@ -1,204 +0,0 @@ -.\" Copyright (c) 1980, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)dup.2 8.1 (Berkeley) 6/4/93 -.\" $Id: dup.2,v 1.7 1997/02/22 15:03:49 peter Exp $ -.\" -.Dd June 4, 1993 -.Dt DUP 2 -.Os BSD 4 -.Sh NAME -.Nm dup , -.Nm dup2 -.Nd duplicate an existing file descriptor -.Sh SYNOPSIS -.Fd #include <unistd.h> -.Ft int -.Fn dup "int oldd" -.Ft int -.Fn dup2 "int oldd" "int newd" -.Sh DESCRIPTION -.Fn Dup -duplicates an existing object descriptor and returns its value to -the calling process -.Fa ( newd -= -.Fn dup oldd ) . -The argument -.Fa oldd -is a small non-negative integer index in -the per-process descriptor table. The value must be less -than the size of the table, which is returned by -.Xr getdtablesize 2 . -The new descriptor returned by the call -is the lowest numbered descriptor -currently not in use by the process. -.Pp -The object referenced by the descriptor does not distinguish -between -.Fa oldd -and -.Fa newd -in any way. -Thus if -.Fa newd -and -.Fa oldd -are duplicate references to an open -file, -.Xr read 2 , -.Xr write 2 -and -.Xr lseek 2 -calls all move a single pointer into the file, -and append mode, non-blocking I/O and asynchronous I/O options -are shared between the references. -If a separate pointer into the file is desired, a different -object reference to the file must be obtained by issuing an -additional -.Xr open 2 -call. -The close-on-exec flag on the new file descriptor is unset. -.Pp -In -.Fn dup2 , -the value of the new descriptor -.Fa newd -is specified. If this descriptor is already in use and -.Fa oldd -!= -.Fa newd , -the descriptor is first deallocated as if a -.Xr close 2 -call had been used. -If -.Fa oldd -is not a valid descriptor, then -.Fa newd -is not closed. -If -.Fa oldd -== -.Fa newd -and -.Fa oldd -is a valid descriptor, then -.Fn dup2 -is successful, and does nothing. -.Sh IMPLEMENTATION NOTES -.Pp -In the non-threaded library -.Fn dup -is implemented as the -.Va dup -syscall. -.Pp -In the threaded library, the -.Va dup -syscall is assembled to -.Fn _thread_sys_dup -and -.Fn dup -is implemented as a function which locks -.Va oldd -for read and write, then calls -.Fn _thread_sys_dup . -Before returning, -.Fn dup -unlocks -.Va oldd . -.Pp -In the non-threaded library -.Fn dup2 -is implemented as the -.Va dup2 -syscall. -.Pp -In the threaded library, the -.Va dup2 -syscall is assembled to -.Fn _thread_sys_dup2 -and -.Fn dup2 -is implemented as a function which locks both -.Va oldd -and -.Va newd -for read and write, then calls -.Fn _thread_sys_dup2 . -Before returning, -.Fn dup2 -unlocks -.Va oldd . -and -.Va newd . -.Sh RETURN VALUES -The value -1 is returned if an error occurs in either call. -The external variable -.Va errno -indicates the cause of the error. -.Sh ERRORS -.Fn Dup -and -.Fn dup2 -fail if: -.Bl -tag -width Er -.It Bq Er EBADF -.Fa Oldd -or -.Fa newd -is not a valid active descriptor -.It Bq Er EMFILE -Too many descriptors are active. -.El -.Sh SEE ALSO -.Xr accept 2 , -.Xr close 2 , -.Xr fcntl 2 , -.Xr getdtablesize 2 , -.Xr open 2 , -.Xr pipe 2 , -.Xr socket 2 , -.Xr socketpair 2 -.Sh STANDARDS -The -.Fn dup -and -.Fn dup2 -function calls are expected to conform to -.St -p1003.1-90 . -.Sh HISTORY -A -.Fn dup -and a -.Fn dup2 -function call appeared in -.At v7 . |