Provided by: manpages-de_4.27.0-1_all bug

BEZEICHNUNG

       /proc/pid/fd/ - Dateideskriptoren

BESCHREIBUNG

       /proc/PID/fd/
              In diesem Unterverzeichnis stehen die Dateideskriptoren der von diesem Prozess geöffneten Dateien.
              Diese Einträge sind symbolische Links zu den eigentlichen Dateien. Also ist 0 die Standardeingabe,
              1 ist die Standardausgabe, 2 ist der Standardfehlerkanal usw.

              Für  Dateideskriptoren  für  Pipes  und  Sockets werden die Einträge symbolische Links sein, deren
              Inhalt der Dateityp mit dem Inode ist. Ein Aufruf von readlink(2) mit dieser  Datei  liefert  eine
              Zeichenkette im folgenden Format zurück:

                  Typ:[Inode]

              Beispielsweise  wird  socket:[2248868] ein Socket sein, dessen Inode 2248868 ist. Für Sockets kann
              dieser Inode dazu verwandt werden, weitere Informationen in einem der Dateien unter /proc/net/  zu
              finden.

              Für   Dateideskriptoren,   die   keinen   korrespondierenden   Inode  haben  (d.h.  durch  bpf(2),
              epoll_create(2), eventfd(2), inotify_init(2), perf_event_open(2),  signalfd(2),  timerfd_create(2)
              und  userfaultfd(2)  erstellte Dateideskriptoren), wird der Eintrag ein symbolischer Link sein mit
              Inhalten der Form

                  anon_inode:Dateityp

              In vielen (aber nicht allen) Fällen wird Dateityp durch eckige Klammern eingeschlossen.

              Beispielsweise  wird  ein  Epoll-Dateideskriptor  einen  symbolischen  Link,  dessen  Inhalt   die
              Zeichenkette anon_inode:[eventpoll] ist, haben.

              In  einem  Multithread-Prozess ist der Inhalt dieses Verzeichnisses nicht mehr verfügbar, wenn der
              Haupt-Thread schon beendet ist (typischerweise durch einen Aufruf von pthread_exit(3)).

              Programme, die einen Dateinamen als Befehlszeilen-Argument verarbeiten, aber ohne  Argument  keine
              Eingaben  aus  der  Standardeingabe  annehmen  oder  die  in  eine Datei schreiben, deren Name als
              Befehlszeilen-Argument übergeben wird, aber bei fehlendem Argument nicht  in  die  Standardausgabe
              ausgeben,  können  dennoch  mittels  Dateien  /proc/PID/fd als Befehlszeilenargument dazu gebracht
              werden, die Standardeingabe oder die Standardausgabe zu verwenden.  Angenommen,  der  Schalter  -i
              bezeichnet die Eingabedatei und -o die Ausgabedatei:

                  $ foobar -i /proc/self/fd/0 -o /proc/self/fd/1 

              und Sie haben einen funktionierenden Filter.

              /proc/self/fd/N  ist  in etwa dasselbe wie /dev/fd/N in einigen UNIX- und UNIX-ähnlichen Systemen.
              Die meisten MAKEDEV-Skripte legen tatsächlich symbolische Links von /proc/self/fd zu /dev/fd an.

              Die meisten Systeme stellen die symbolischen Links /dev/stdin, /dev/stdout und /dev/stderr bereit,
              die entsprechend auf die Dateien 0, 1 und 2 in /proc/self/fd weisen. Das  letzte  Beispiel  könnte
              also auch alternativ geschrieben werden als:

                  $ foobar -i /dev/stdin -o /dev/stdout 

              Die  Rechte,  die  symbolischen  Links  in  diesem  Verzeichnis  zu  dereferenzieren oder zu lesen
              (readlink(2)), werden von einer  Ptrace-Zugriffsmodusprüfung  PTRACE_MODE_READ_FSCREDS  gesteuert;
              siehe ptrace(2).

              Beachten  Sie,  dass für Dateideskriptoren, die sich auf Inodes beziehen (Pipes und Sockets, siehe
              oben), diese Inodes immer noch die von den Einträgen /proc/PID/fd verschiedenen  Berechtigungsbits
              und   Eigentümerinformationen   haben   und  dass  sich  der  Eigentümer  von  den  Benutzer-  und
              Gruppenkennungen des Prozesses unterscheiden kann. Einem nicht privilegierten Prozess könnten  die
              Rechte zum Öffnen fehlen, wie in diesem Beispiel:

                  $ echo test | sudo -u nobody cat
                  test
                  $ echo test | sudo -u nobody cat /proc/self/fd/0
                  cat: /proc/self/fd/0: Permission denied

              Dateideskriptor  0  bezieht  sich  auf  die durch die Shell erzeugte und von diesem Shell-Benutzer
              (dies ist nobody) besessene Pipe, so dass cat nicht über  die  Berechtigungen  verfügt,  um  einen
              neuen  Dateideskriptor  zu  erstellen,  um  von  dieser  Inode  zu lesen, obwohl es immer noch vom
              existierenden Dateideskriptor 0 lesen kann.

SIEHE AUCH

       proc(5)

ÜBERSETZUNG

       Die   deutsche    Übersetzung    dieser    Handbuchseite    wurde    von    Martin    Eberhard    Schauer
       <Martin.E.Schauer@gmx.de>,  Dr.  Tobias  Quathamer  <toddy@debian.org>, Chris Leick <c.leick@vollbio.de>,
       Erik Pfannenstein <debianignatz@gmx.de> und Helge Kreutzmann <debian@helgefjell.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 die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                              2. Mai 2024                                    proc_pid_fd(5)