Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DUP(2)			   Linux Programmer's Manual			DUP(2)

NAME
       dup, dup2 - duplicate a file descriptor

SYNOPSIS
       #include	<unistd.h>

       int dup(int oldfd);
       int dup2(int oldfd, int newfd);

DESCRIPTION
       dup and dup2 create a copy of the file descriptor oldfd.

       After successful	return of dup or dup2, the old and new descriptors may
       be used interchangeably.	They share locks, file position	 pointers  and
       flags;  for example, if the file	position is modified by	using lseek on
       one of the descriptors, the position is also changed for	the other.

       The two descriptors do not share	the close-on-exec flag,	however.

       dup uses	the lowest-numbered unused descriptor for the new descriptor.

       dup2 makes newfd	be the copy of oldfd, closing newfd  first  if	neces-
       sary.

RETURN VALUE
       dup  and	dup2 return the	new descriptor,	or -1 if an error occurred (in
       which case, errno is set	appropriately).

ERRORS
       EBADF  oldfd isn't an open file descriptor, or newfd is out of the  al-
	      lowed range for file descriptors.

       EMFILE The  process  already has	the maximum number of file descriptors
	      open and tried to	open a new one.

WARNING
       The error returned by dup2 is different to that returned	by  fcntl(...,
       F_DUPFD,	 ...)	when  newfd is out of range. On	some systems dup2 also
       sometimes returns EINVAL	like F_DUPFD.

CONFORMING TO
       SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4	documents additional EINTR and
       ENOLINK error conditions.  POSIX.1 adds EINTR.

SEE ALSO
       fcntl(2), open(2), close(2)

Linux 1.1.46			  1994-08-21				DUP(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | WARNING | CONFORMING TO | SEE ALSO

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dup&sektion=2&manpath=Red+Hat+9>

home | help