.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" SPDX-License-Identifier: BSD-4-Clause-UC
.\"
.\"     @(#)popen.3	6.4 (Berkeley) 4/30/91
.\"
.\" Converted for Linux, Mon Nov 29 14:45:38 1993, faith@cs.unc.edu
.\" Modified Sat May 18 20:37:44 1996 by Martin Schulze (joey@linux.de)
.\" Modified 7 May 1998 by Joseph S. Myers (jsm28@cam.ac.uk)
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH popen 3 "5. Februar 2023" "Linux man\-pages 6.03" 
.SH BEZEICHNUNG
popen, pclose \- Datenstrom von oder zu einem Prozess weiterleiten
.SH BIBLIOTHEK
Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP)
.SH ÜBERSICHT
.nf
\fB#include <stdio.h>\fP
.PP
\fBFILE *popen(const char *\fP\fIbefehl\fP\fB, const char *\fP\fItyp\fP\fB);\fP
\fBint pclose(FILE *\fP\fIdatenstrom\fP\fB);\fP
.fi
.PP
.RS -4
Mit Glibc erforderliche Feature\-Test\-Makros (siehe
\fBfeature_test_macros\fP(7)):
.RE
.PP
\fBpopen\fP(), \fBpclose\fP():
.nf
    _POSIX_C_SOURCE >= 2
        || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
.fi
.SH BESCHREIBUNG
Die Funktion \fBpopen\fP() öffnet einen Prozess dadurch, dass sie sich nach
Erzeugen einer Weiterleitung aufteilt und eine Shell aufruft. Da eine
Weiterleitung nach Definition in eine Richtung läuft, darf das Argument
\fItyp\fP nur Lesen oder Schreiben angeben, nicht beides; der resultierende
Datenstrom ist demzufolge nur\-lesend oder nur\-schreibend.
.PP
Das Argument \fIbefehl\fP ist ein Zeiger auf eine mit Null beendete
Zeichenkette, die eine Shell\-Befehlszeile enthält. Dieser Befehl wird mit
dem Schalter \fB\-c\fP an \fI/bin/sh\fP übergeben; Falls nötig, wird er von der
Shell interpretiert.
.PP
Das Argument \fItyp\fP ist ein Zeiger auf eine mit Null beendete Zeichenkette,
die entweder »r« für Lesen oder »w« für Schreiben enthalten muss. Seit Glibc
2.9 kann dieses Argument zusätzlich den Buchstaben »e« beinhalten, der
veranlasst, dass für den zugrundeliegenden Dateideskriptor der Schalter
»close\-on\-exec« (\fBFD_CLOEXEC\fP) gesetzt wird. Lesen Sie die Beschreibung des
Schalters \fBO_CLOEXEC\fP in \fBopen\fP(2), um zu erfahren, warum dies nützlich
sein könnte.
.PP
Der Rückgabewert von \fBpopen\fP() ist in jeder Hinsicht ein normaler
Standard\-E/A\-Datenstrom, trotzdem muss er mit \fBpclose\fP(), nicht mit
\fBfclose\fP(3) geschlossen werden. Schreiben in solch einen Datenstrom
bewirkt, dass in die Standardeingabe des Befehls geschrieben wird; die
Standardausgabe des Befehls ist die des Prozesses, der \fBpopen\fP() aufgerufen
hat, wenn dies nicht vom Befehl selbst geändert wird. Umgekehrt liest ein
mit \fBpopen\fP() geöffneter Datenstrom von der Standardausgabe des Befehls,
während die Standardeingabe dieselbe ist, wie die des Prozesses, der
\fBpopen\fP() aufrief.
.PP
Beachten Sie, dass \fBpopen\fP()\-Ausgabedatenströme standardmäßig
blockgepuffert sind.
.PP
Die Funktion \fBpclose\fP() wartet bis der zugehörige Prozess beendet ist und
gibt den Exit\-Status des Befehls, wie von \fBwait4\fP(2) geliefert, zurück.
.SH RÜCKGABEWERT
\fBpopen\fP(): Liefert im Erfolgsfall einen Zeiger auf einen offenen Datenstrom
zurück, der für das Lesen und Schreiben einer Pipe genutzt werden
kann. Falls die Aufrufe \fBfork\fP(2) oder \fBpipe\fP(2) fehlschlagen oder falls
die Funktion keinen Speicher reservieren kann, wird NULL zurückgegeben.
.PP
.\" These conditions actually give undefined results, so I commented
.\" them out.
.\" .I stream
.\" is not associated with a "popen()ed" command, if
.\".I stream
.\" already "pclose()d", or if
\fBpclose\fP(): Liefert im Erfolgsfall den Exit\-Status des Befehls
zurück. Falls \fBwait4\fP(2) einen Fehler zurückliefert oder ein anderer Fehler
erkannt wird, wird \-1 zurückgeliefert.
.PP
Bei einem Fehler wird für beide Funktionen \fIerrno\fP gesetzt, um den Fehler
anzuzeigen.
.SH FEHLER
Die Funktion \fBpopen\fP() setzt \fIerrno\fP nicht, wenn die Speicherreservierung
fehlschlägt. Falls das zugrundeliegende \fBfork\fP(2) oder \fBpipe\fP(2)
fehlschlägt, wird \fIerrno\fP gesetzt, um den Fehler anzuzeigen. Falls das
Argument \fItyp\fP ungültig ist, wird \fIerrno\fP auf \fBEINVAL\fP gesetzt.
.PP
Falls \fBpclose\fP() den Status des Kindprozesses  nicht abfragen kann, wird
\fIerrno\fP auf \fBECHILD\fP gesetzt.
.SH ATTRIBUTE
Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt
verwandten Ausdrücke.
.ad l
.nh
.TS
allbox;
lbx lb lb
l l l.
Schnittstelle	Attribut	Wert
T{
\fBpopen\fP(),
\fBpclose\fP()
T}	Multithread\-Fähigkeit	MT\-Safe
.TE
.hy
.ad
.sp 1
.SH STANDARDS
POSIX.1\-2001, POSIX.1\-2008.
.PP
Der Wert »e« für \fItyp\fP ist eine Linux\-Erweiterung.
.SH ANMERKUNGEN
\fBHinweis\fP: Lesen Sie Warnungen in \fBsystem\fP(3) sorgfältig.
.SH FEHLER
Da die zum Lesen geöffnete Standardeingabe eines Befehls ihren Suchindex mit
dem Prozess teilt, der \fBpopen\fP() aufgerufen hat, kann es vorkommen, dass
die Eingabeposition des Befehls nicht wie erwartet ist. Ebenso könnte die
Ausgabe eines zum Schreiben geöffneten Befehls mit der des Originalprozesses
gemischt werden. Letzteres kann durch aufrufen von \fBfflush\fP(3) vor
\fBpopen\fP() vermieden werden.
.PP
.\" .SH HISTORY
.\" A
.\" .BR popen ()
.\" and a
.\" .BR pclose ()
.\" function appeared in Version 7 AT&T UNIX.
Das Fehlschlagen des Shellaufzurufs kann nicht vom Fehlschlagein eines
Befehls, der von der Shell ausgeführt wurde oder einem sofortigen Ende des
Befehls, unterschieden werden. Einziger Hinweis ist ein Exit\-Status von 127.
.SH "SIEHE AUCH"
\fBsh\fP(1), \fBfork\fP(2), \fBpipe\fP(2), \fBwait4\fP(2), \fBfclose\fP(3), \fBfflush\fP(3),
\fBfopen\fP(3), \fBstdio\fP(3), \fBsystem\fP(3)
.PP
.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Martin Schulze <joey@infodrom.org>,
Patrick Rother <krd@gulu.net>,
Chris Leick <c.leick@vollbio.de>
und
Mario Blättermann <mario.blaettermann@gmail.com>
erstellt.
.PP
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
.PP
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an die
.MT debian-l10n-german@lists.debian.org
Mailingliste der Übersetzer
.ME .