dup

DUP(2)                        Linux Systemaufrufe                       DUP(2)



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





Linux 1.1.46                    21 August 1994                          DUP(2)