.\" -*- 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 "2 maja 2024 r." "Linux man\-pages 6.9.1" .SH NAZWA popen, pclose \- strumieniuje potok do lub z procesu .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .P \fBFILE *popen(const char *\fP\fIcommand\fP\fB, const char *\fP\fItype\fP\fB);\fP \fBint pclose(FILE *\fP\fIstream\fP\fB);\fP .fi .P .RS -4 Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)): .RE .P \fBpopen\fP(), \fBpclose\fP(): .nf _POSIX_C_SOURCE >= 2 || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH OPIS Funkcja \fBpopen\fP() otwiera proces, tworząc potok, rozwidlając się przez fork() i wywołując powłokę. Ponieważ potok jest z definicji jednokierunkowy, argument \fItype\fP może określać tylko odczyt albo tylko zapis, nie oba naraz. Otrzymany w wyniku tego strumień będzie tylko do odczytu albo tylko do zapisu. .P Argument \fIcommand\fP jest wskaźnikiem do zakończonego znakiem NUL łańcucha, zawierającego wiersz poleceń powłoki. Polecenie to jest przekazywane do \fI/bin/sh\fP przy użyciu opcji \fB\-c\fP; wszelka interpretacja jest dokonywana przez powłokę. .P Argument \fItype\fP jest wskaźnikiem do łańcucha zakończonego znakiem null, który musi zawierać albo literę \[Bq]r\[rq] (do odczytu), albo literę \[Bq]w\[rq] (do zapisu). Od glibc 2.9, argument ten może dodatkowo obejmować literę \[Bq]e\[rq], co powoduje ustawienie znacznika zamknięcia przy wykonaniu (\fBFD_CLOEXEC\fP) na przedmiotowym deskryptorze pliku; powody, dla których może być to użyteczne opisano przy znaczniku \fBO_CLOEXEC\fP w podręczniku \fBopen\fP(2). .P Wartość zwracana przez \fBpopen\fP() to normalny strumień wejścia/wyjścia, lecz powinien on być zamykany przy użyciu \fBpclose\fP() zamiast \fBfclose\fP(3). Zapisywanie do takiego strumienia powoduje pisanie na standardowe wejście polecenia. Standardowe wyjście polecenia jest takie samo, jak procesu, który wywołał \fBpopen\fP(), chyba że zostało to zmienione przez polecenie. Podobnie, odczyt z tak otwartego strumienia powoduje odczyt ze standardowego wyjścia polecenia, a standardowe wejście polecenia jest wtedy tożsame z wejściem procesu, który wywołał \fBpopen\fP(). .P Należy zauważyć, że strumienie wyjściowe powstałe z \fBpopen\fP() są domyślnie w pełni buforowane. .P Funkcja \fBpclose\fP() oczekuje na zakończenie stowarzyszonego procesu i zwraca jego kod zakończenia, podobnie jak to czyni \fBwait4\fP(2). .SH "WARTOŚĆ ZWRACANA" \fBpopen\fP: przy powodzeniu zwraca wskaźnik do otwartego strumienia, który może służyć do odczytu lub zapisu do potoku; jeśli nie powiodły się wywołania \fBfork\fP(2) lub \fBpipe\fP(2), lub jeśli nie udało się przydzielić pamięci, zwracane jest NULL. .P .\" 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: przy powodzeniu zwraca status zakończenia polecenia; jeśli \fBwait4\fP zwróci błąd lub zostały wykryte jakieś inne błędy, zwracane jest \-1. .P W przypadku błędu, obie funkcje ustawiają \fIerrno\fP, wskazując błąd. .SH BŁĘDY Funkcja \fBpopen\fP() nie ustawia \fIerrno\fP, jeżeli nie uda się przydzielić pamięci. Jeżeli nie powiodą się wywoływane przez nią \fBfork\fP(2) lub \fBpipe\fP(2), to ustawione będzie \fIerrno\fP, wskazując błąd. Jeżeli argument \fItype\fP będzie nieprawidłowy i zostanie to wykryte, to \fIerrno\fP zostanie ustawione na \fBEINVAL\fP. .P Jeżeli nie będzie możliwe otrzymanie kodu zakończenia procesu potomnego przez \fBpclose\fP(), to \fIerrno\fP zostanie ustawione na \fBECHILD\fP. .SH ATRYBUTY Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfejs Atrybut Wartość T{ .na .nh \fBpopen\fP(), \fBpclose\fP() T} Bezpieczeństwo wątkowe MT\-bezpieczne .TE .SH WERSJE Wartość \[Bq]e\[rq] dla \fItype\fP jest rozszerzeniem systemu Linux. .SH STANDARDY POSIX.1\-2008. .SH HISTORIA POSIX.1\-2001. .SH ZASTRZEŻENIA Proszę dokładnie zapoznać się z Zastrzeżeniami w podręczniku \fBsystem\fP(3). .SH USTERKI Przesunięcie standardowego wejścia polecenia otwartego do odczytu jest takie samo dla tego polecenia i dla procesu, który wywołał \fBpopen\fP(), zatem jeśli oryginalny proces wykona buforowany odczyt, to pozycja na wejściu polecenia może być inna niż oczekiwano. Podobnie, wyjście polecenia otwartego dla zapisu może zostać wymieszane z wyjściem procesu oryginalnego. Temu ostatniemu można zapobiec, wołając przed \fBpopen\fP() funkcję \fBfflush\fP(3). .P .\" .SH HISTORY .\" A .\" .BR popen () .\" and a .\" .BR pclose () .\" function appeared in Version 7 AT&T UNIX. Błąd w wywołaniu powłoki jest nieodróżnialny od błędu powłoki przy wywoływaniu polecenia, czy od natychmiastowego zakończenia polecenia. Jedynym śladem jest kod zakończenia równy 127. .SH "ZOBACZ TAKŻE" \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 TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys , Jarosław Beczek , Andrzej Krzysztofowicz i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .