aboutsummaryrefslogtreecommitdiff
path: root/man/man3/dup.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/dup.3')
-rw-r--r--man/man3/dup.342
1 files changed, 42 insertions, 0 deletions
diff --git a/man/man3/dup.3 b/man/man3/dup.3
new file mode 100644
index 00000000..83f98fe1
--- /dev/null
+++ b/man/man3/dup.3
@@ -0,0 +1,42 @@
+.TH DUP 3
+.SH NAME
+dup \- duplicate an open file descriptor
+.SH SYNOPSIS
+.B #include <u.h>
+.br
+.B #include <libc.h>
+.PP
+.B
+int dup(int oldfd, int newfd)
+.SH DESCRIPTION
+Given a file descriptor,
+.IR oldfd ,
+referring to an open file,
+.I dup
+returns a new file descriptor referring to the same file.
+.PP
+If
+.I newfd
+is \-1 the system chooses the lowest available file descriptor.
+Otherwise,
+.I dup
+will use
+.I newfd
+for the new file descriptor
+(closing any old file associated with
+.IR newfd ).
+File descriptors are allocated dynamically,
+so to prevent unwarranted growth of the file descriptor table,
+.I dup
+requires that
+.I newfd
+be no greater than 20 more than the highest file descriptor ever used by
+the program.
+.SH SOURCE
+.B /sys/src/libc/9syscall
+.SH SEE ALSO
+.IR intro (2),
+.IR dup (3)
+.SH DIAGNOSTICS
+Sets
+.IR errstr .