Provided by: manpages-de-dev_0.5-4.1ubuntu1_all bug

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).