Provided by:
manpages-de-dev_0.5-4.1ubuntu1_all 
BEZEICHNUNG
dup, dup2 - dupliziert einen file descriptor (Datei-Referenz)
SYNOPSIS
#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);
BESCHREIBUNG
dup und dup2 erzeugen eine Kopie des file descriptor oldfd.
Die alten und neuen Deskriptoren können wahlfrei benutzt werden. Sie
teilen sich Locks, Dateipositionszeiger (File Position Pointers) und
Flags; falls beispielsweise die Dateiposition durch lseek für einen der
Deskriptoren verändert wurde, ist es sie auch für den anderen.
Die close-on-exec flag (Schließen-bei-Ausführung) teilen sie sich
jedoch nicht.
dup benutzt den unbenutzten Deskriptor mit der kleinsten Nummer für den
neuen.
dup2 macht newfd zur Kopie von oldfd, wobei newfd, falls notwendig,
zuerst geschlossen wird.
WIEDERGABEWERT
dup und dup2 geben den neuen descriptor zurück, oder -1 falls ein
Fehler auftrat (in diesem Falle wird auch errno entsprechend gesetzt).
FEHLER
EBADF oldfd ist kein offener file descriptor, oder newfd ist außerhalb
des für Dateideskriptoren erlaubten Bereiches.
EMFILE Der Prozess hat schon die maximale Anzahl an file deskriptoren
offen und versuchte einen weiteren zu öffnen.
WARNUNG
Der Fehler, der von dup2 zurückgegeben wird, ist unterschiedlich zu
demjenigen von fcntl(...,F_DUPFD,...) wenn newfd außerhalb des
Bereiches ist. Weiterhin gibt dup2 auf einigen Systemen EINVAL wie
F_DUPFD zurück.
KONFORM ZU
SVID, AT&T, POSIX, X/OPEN, BSD 4.3
SIEHE AUCH
fcntl(2), open(2), close(2).