> Linux Reviews > man >

dup


  1. dup.2.man


1. dup.2.man

Manpage of DUP

DUP

Section: Linux\-Programmierhandbuch (2)
Updated: 10. September 2010
Index Return to Main Contents
 

BEZEICHNUNG

dup, dup2 - dupliziert einen Datei-Deskriptor  

ÜBERSICHT

#include <unistd.h>

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

#define _GNU_SOURCE             /* Siehe feature_test_macros(7) */
#include <unistd.h>

int dup3(int oldfd, int newfd, int schalter);
 

BESCHREIBUNG

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:

*
Falls oldfd kein gültiger Datei-Deskriptor ist, schlägt der Aufruf fehl und newfd wird nicht geschlossen.
*
Falls oldfd ein gültiger Datei-Deskriptor ist und newfd den gleichen Wert wie oldfd hat, dann tut dup2() nichts und gibt newfd zurück.

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:

*
Der Aufrufende kann erzwingen, dass der Schalter »close-on-exec« für den neuen Datei-Deskriptor durch Angabe von O_CLOEXEC in schalter gesetzt wird. Lesen Sie die Beschreibung des gleichnamigen Schalters in open(2), um zu erfahren, warum dies nützlich sein könnte.
*
Falls oldfd newfd entspricht, schlägt dup3() mit dem Fehler EINVAL fehl.
 

RÜCKGABEWERT

Bei Erfolg geben diese Systemaufrufe den neuen Deskriptor zurück. Im Fehlerfall wird -1 zurückgegeben und errno entsprechend gesetzt.  

FEHLER

EBADF
oldfd ist kein offener Datei-Deskriptor oder newfd ist außerhalb des für Datei-Deskriptoren erlaubten Bereiches.
EBUSY
(nur Linux) Dies könnte von dup2() oder dup3() während einer Gleichzeitigkeitsbedingung mit open(2) und dup() zurückgegeben werden.
EINTR
Der Aufruf von dup2() oder dup3() wurde von einem Signal unterbrochen; lesen Sie signal(7).
EINVAL
(dup3()) schalter enthält einen ungültigen Wert oder oldfd entsprach newfd.
EMFILE
Der Prozess hat bereits die maximale Anzahl an offenen Datei-Deskriptoren und versucht einen neuen zu öffnen.
 

VERSIONEN

dup3() wurde in Version 2.6.27 zu Linux hinzugefügt; Glibc-Unterstützung ist seit Version 2.9 verfügbar.  

KONFORM ZU

dup(), dup2(): SVr4, 4.3BSD, POSIX.1-2001.

dup3() ist Linux-spezifisch.  

ANMERKUNGEN

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.  

SIEHE AUCH

close(2), fcntl(2), open(2)  

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 3.27 des Projekts Linux-man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.

 

ÜBERSETZUNG

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


 

Index

BEZEICHNUNG
ÜBERSICHT
BESCHREIBUNG
RÜCKGABEWERT
FEHLER
VERSIONEN
KONFORM ZU
ANMERKUNGEN
SIEHE AUCH
KOLOPHON
ÜBERSETZUNG

This document was created by man2html using the manual pages.
Time: 17:34:53 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - ja - nl - pl - SVENSKA