dup, dup2
dupliziert einen Datei-Deskriptor
- Provided by: manpages-de-dev (Version: 1.4-1)
- Source: manpages-de
- Report a bug
dupliziert einen Datei-Deskriptor
#include <unistd.h> int dup(int oldfd); int dup2(int oldfd, int newfd); #define _GNU_SOURCE /* Siehe feature_test_macros(7) */ #include <fcntl.h> /* Definitionen der O_*-Konstanten abrufen */ #include <unistd.h> int dup3(int oldfd, int newfd, int schalter);
Diese Systemaufrufe erstellen eine Kopie des Datei-Deskriptors oldfd.
dup() benutzt den unbenutzten Deskriptor mit der niedrigsten Nummer für den neuen Deskriptor.
dup2() erstellt newfd als Kopie von oldfd, wobei newfd, falls notwendig, zuerst geschlossen wird, aber beachten Sie Folgendes:
Nach der erfolgreichen Rückkehr von einem dieser Systemaufrufe können die alten und neuen Datei-Deskriptoren synonym benutzt werden. Sie beziehen sich auf die gleichen offenen Datei-Deskriptoren (siehe open(2)) und teilen sich dadurch Dateiversatz (file offset) und Dateistatusschalter. Falls der Dateiversatz zum Beispiel durch lseek(2) auf einem der Deskriptoren geändert wurde, wird der Versatz auch für den anderen verändert.
Die beiden Deskriptoren teilen sich keine Datei-Deskriptor-Schalter (den Schalter »close-on-exec«). Der Schalter »close-on-exec« (FD_CLOEXEC; siehe fcntl(2)) für das Duplikat ist aus.
dup3() entspricht dup2(), außer dass:
Bei Erfolg geben diese Systemaufrufe den neuen Deskriptor zurück. Im Fehlerfall wird -1 zurückgegeben und errno entsprechend gesetzt.
dup3() wurde in Version 2.6.27 zu Linux hinzugefügt; Glibc-Unterstützung ist seit Version 2.9 verfügbar.
dup(), dup2(): SVr4, 4.3BSD, POSIX.1-2001.
dup3() ist Linux-spezifisch.
Der von dup2 zurückgegebene Fehler unterscheidet sich von dem, der von fcntl(...,F_DUPFD,...) zurückgegeben wird, wenn newfd außerhalb des Bereiches ist. Weiterhin gibt dup2 auf einigen Systemen EINVAL wie F_DUPFD zurück.
Falls newfd geöffnet war, gehen einige Fehler, die zur Zeit des close(2) berichtet worden wären, verloren. Ein vorsichtiger Programmierer wird dup2() oder dup3() nicht benutzen ohne zuerst newfd zu schließen.
This page is part of release 3.54 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.
Die deutsche Übersetzung dieser Handbuchseite wurde von Aldo Valente <aldo@dagobar.rhein.de> und Chris Leick <c.leick@vollbio.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.