Amiga Unix — 68040 · 68060

Manual pages › System calls (2)

dup(2)

duplicate an open file descriptor

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

dup - duplicate an open file descriptor

SYNOPSIS

#include <unistd.h>

int dup(int fildes);

DESCRIPTION

fildes is a file descriptor obtained  from  a  creat,  open,
dup,  fcntl,  or  pipe  system call.  dup returns a new file
descriptor having the following in common with the original:

Same open file (or pipe).

Same file pointer (i.e., both file descriptors share one file pointer).

Same access mode (read, write or read/write).

The new file descriptor is set to remain open across exec system calls [see fcntl(2)].

The file descriptor returned is the lowest one available.

dup will fail if one or more of the following are true:

EBADF fildes is not a valid open file descriptor.

EINTR A signal was caught during the dup system call.

EMFILE The process has too many open files [see getrlimit(2)].

ENOLINK fildes is on a remote machine and the link to that machine is no longer active.

SEE ALSO

close(2),   creat(2),   exec(2),   fcntl(2),   getrlimit(2),
open(2), pipe(2), dup2(3C), lockf(3C).

DIAGNOSTICS

Upon successful completion a non-negative integer, namely the file descriptor, is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.