.\" -*- coding: UTF-8 -*- .\" Copyright (C) 1994, 1995, Daniel Quinlan .\" Copyright (C) 2002-2008, 2017, Michael Kerrisk .\" Copyright (C) 2023, Alejandro Colomar .\" .\" SPDX-License-Identifier: GPL-3.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH proc_pid_fd 5 "2 maja 2024 r." "Linux man\-pages 6.9.1" .SH NAZWA /proc/pid/fd/ \- deskryptory pliku .SH OPIS .TP \fI/proc/\fPpid\fI/fd/\fP Jest to podkatalog zawierający po jednym wpisie dla każdego otwartego przez proces pliku; nazwą tego wpisu jest deskryptor pliku i jest on dowiązaniem symbolicznym do rzeczywistego pliku. Dlatego 0 jest standardowym wejściem, 1 jest standardowym wyjściem, 2 jest standardową diagnostyką, itd. .IP W przypadku deskryptorów plików potoków i gniazd, wpisy będą dowiązaniami symbolicznymi, których zawartością jest typ pliku z i\-węzłem. Wywołanie \fBreadlink\fP(2) na takim pliku zwróci ciąg w postaci: .IP .in +4n .EX typ:[i\-węzeł] .EE .in .IP Przykładowo \fIsocket:[2248868]\fP będzie gniazdem z i\-węzłem 2248868. W przypadku gniazd, i\-węzeł można wykorzystać do pozyskania większej liczby informacji z jednego z plików z katalogu \fI/proc/net/\fP. .IP W przypadku deskryptorów plików, które nie mają odpowiadającego i\-węzła (np. deskryptorów plików tworzonych za pomocą \fBbpf\fP(2), \fBepoll_create\fP(2), \fBeventfd\fP(2), \fBinotify_init\fP(2), \fBperf_event_open\fP(2), \fBsignalfd\fP(2), \fBtimerfd_create\fP(2) i \fBuserfaultfd\fP(2)), wpis będzie dowiązaniem symbolicznym z zawartością w postaci .IP .in +4n .EX anon_inode:\fItyp\-pliku\fP .EE .in .IP W wielu przypadkach (lecz nie wszystkich) \fItyp\-pliku\fP jest otoczony nawiasami kwadratowymi. .IP Przykładowo dowiązanie symboliczne deskryptora pliku epoll będzie dowiązaniem symbolicznym, którego zawartością jest łańcuch \fIanon_inode:[eventpoll]\fP. .IP .\"The following was still true as at kernel 2.6.13 W procesie wielowątkowym zawartość tego katalogu nie jest dostępna, jeżeli wątek główny już się zakończył (zazwyczaj przez wywołanie \fBpthread_exit\fP(3)). .IP Programy, które przyjmują nazwę pliku jako argument wiersza polecenia, lecz nie czytają standardowego wejścia, jeśli nie podano argumentu oraz programy które zapisują do pliku nazwanego argumentem wiersza polecenia, lecz nie wysyłają danych wyjściowych na standardowe wyjście, można zmusić do używania standardowego wejścia lub wyjścia wykorzystując pliki \fI/proc/\fPpid\fI/fd\fP jako argumenty wiersza poleceń. Na przykład, zakładając, że opcja \fI\-i\fP określa plik wejściowy, a opcja \fI\-o\fP określa plik wyjściowy: .IP .in +4n .EX $\fB foobar \-i /proc/self/fd/0 \-o /proc/self/fd/1 ...\fP .EE .in .IP .\" The following is not true in my tests (MTK): .\" Note that this will not work for .\" programs that seek on their files, as the files in the fd directory .\" are not seekable. co daje działający filtr. .IP \fI/proc/self/fd/N\fP jest w przybliżeniu tym samym co \fI/dev/fd/N\fP na niektórych systemach uniksowych i uniksopodobnych. Większość linuksowych skryptów MAKEDEV tworzy dowiązania symboliczne \fI/dev/fd\fP do \fI/proc/self/fd\fP. .IP Większość systemów udostępnia dowiązania symboliczne \fI/dev/stdin\fP, \fI/dev/stdout\fP i \fIdev/stderr\fP, które linkują odpowiednio do plików \fI0\fP, \fI1\fP i \fI2\fP w \fI/proc/self/fd\fP. Powyższe, przykładowe polecenie może być więc zapisane również tak: .IP .in +4n .EX $\fB foobar \-i /dev/stdin \-o /dev/stdout ...\fP .EE .in .IP Uprawnienie do rozwiązania lub odczytu (\fBreadlink\fP(2)) dowiązań symbolicznych w tym katalogu, zależy od sprawdzenia trybu dostępu ptrace: \fBPTRACE_MODE_READ_FSCREDS\fP; zob. \fBptrace\fP(2). .IP Proszę zauważyć, że w przypadku deskryptorów pliku odnoszących się do i\-węzłów (potoków i gniazd, zob. wyżej), ich i\-węzły mają bity uprawnień i informacje o własności odmienne od tych, z wpisu \fI/proc/\fPpid\fI/fd\fP, a własność może się różnić od identyfikatorów użytkownika i grupy procesu. Proces nieuprzywilejowany może nie mieć odpowiednich uprawnień do ich otwarcia, jak w tym przykładzie: .IP .in +4n .EX $\fB echo test | sudo \-u nobody cat\fP test $\fB echo test | sudo \-u nobody cat /proc/self/fd/0\fP cat: /proc/self/fd/0: Brak dostępu .EE .in .IP Deskryptor pliku 0 odnosi się do potoku utworzonego przez powłokę i będącego własnością tego użytkownika powłoki, którym nie jest \fInobody\fP, zatem \fBcat\fP nie ma uprawnień do utworzenia nowego deskryptora pliku do odczytu z tego i\-węzła, nawet gdy może wciąż czytać z jego istniejącego deskryptora pliku 0. .SH "ZOBACZ TAKŻE" \fBproc\fP(5) .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys , Robert Luberda 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 .