Provided by: manpages-de-dev_4.18.1-1_all bug

BEZEICHNUNG

       ioctl_tty - Ioctls für Terminals und serielle Leitungen

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <sys/ioctl.h>
       #include <asm/termbits.h>   /* Definition von struct termios,
                                      struct termios2 und
                                      Bnnn, BOTHER, CBAUD, CLOCAL,
                                      TC*{FLUSH,ON,OFF} und anderen Konstanten */

       int ioctl(int dd, int Bef, …);

BESCHREIBUNG

       Der   ioctl(2)-Aufruf   für   Terminals  und  serielle  Ports  akzeptiert  viele  mögliche
       Befehlzeilenargumente. Die meisten erwarten ein drittes Argument, von  verschiedenem  Typ,
       hier argp oder arg genannt.

       Durch  die  Verwendung  von  ioctl entstehen nichtportierbare Programme. Verwenden Sie die
       POSIX-Schnittstelle, wie in termios(3) beschrieben, wann immer möglich.

       Bitte beachten Sie, dass struct termios aus <asm/termbits.h> anders  und  inkompatibel  zu
       struct  termios  aus  <termios.h>  ist.  Diese  Ioctl-Aufrufe benötigen struct termios aus
       <asm/termbits.h>.

   Terminal-Attribute ermitteln und setzen
       TCGETS Argument: struct termios *argp

              äquivalent zu tcgetattr(dd, argp)

              Einstellungen der aktuellen seriellen Schnittstelle ermitteln

       TCSETS Argument: const struct termios *argp

              äquivalent zu tcsetattr(dd, TCSANOW, argp)

              Einstellungen der aktuellen seriellen Schnittstelle setzen

       TCSETSW
              Argument: const struct termios *argp

              äquivalent zu tcsetattr(dd, TCSADRAIN, argp)

              Erlaubt dem Ausgabepuffer, leerzulaufen,  und  setzt  die  aktuellen  Einstellungen
              serieller Ports.

       TCSETSF
              Argument: const struct termios *argp

              äquivalent zu tcsetattr(dd, TCSAFLUSH, argp)

              Erlaubt  dem  Ausgabepuffer, leerzulaufen, verwirft wartende Eingaben und setzt die
              aktuellen Einstellungen serieller Ports.

       Die folgenden vier, in Linux 2.6.20 hinzugefügten Ioctls, sind genau wie  TCGETS,  TCSETS,
       TCSETSW,  TCSETSF,  außer  dass  sie  ein  struct  termios2 * statt eines struct termios *
       akzeptieren. Falls das Strukturmitglied c_cflag den  Schalter  BOTHER  enthält,  wird  die
       Baud-Rate  in den Strukturmitgliedern c_ispeed und c_ospeed als Ganzzahlwerte gespeichert.
       Diese Ioctls werden nicht auf allen Architekturen unterstützt.

              TCGETS2    struct termios2 *argp
              TCSETS2    const struct termios2 *argp
              TCSETSW2   const struct termios2 *argp
              TCSETSF2   const struct termios2 *argp

       Die folgenden vier Ioctls sind genau wie TCGETS, TCSETS, TCSETSW, TCSETSF, außer dass  Sie
       ein struct termio * statt eines struct termios * erwarten.

              TCGETA    struct termio *argp
              TCSETA    const struct termio *argp
              TCSETAW   const struct termio *argp
              TCSETAF   const struct termio *argp

   Sperren der Struktur Termios
       Die  Struktur  termios  eines  Terminals  kann gesperrt werden. Die Sperre ist selbst eine
       Struktur termios, bei der von Null verschiedene Bits die gesperrten Werte anzeigen.

       TIOCGLCKTRMIOS
              Argument: struct termios *argp

              Ermittelt den Status der Sperren der Struktur termios des Terminals.

       TIOCSLCKTRMIOS
              Argument: const struct termios *argp

              Setzt den Status der Sperren der Struktur termios des Terminals. Nur  Prozesse  mit
              der Capability CAP_SYS_ADMIN können dies tun.

   Fenstergröße ermitteln und setzen
       Fenstergrößen  werden  im  Kernel  gehalten,  dort aber nicht verwandt (außer im Falle der
       virtuellen Konsolen, bei denen der Kernel die Fenstergrößen aktualisiert,  wenn  sich  die
       Größe der virtuellen Konsolen ändert, beispielsweise durch Laden einer neuen Schriftart).

       TIOCGWINSZ
              Argument: struct winsize *argp

              Fenstergröße ermitteln.

       TIOCSWINSZ
              Argument: const struct winsize *argp

              Fenstergröße setzen.

       Das von diesen Ioctls verwandte Struct ist wie folgt definiert:

           struct winsize {
               unsigned short ws_row;
               unsigned short ws_col;
               unsigned short ws_xpixel;   /* unbenutzt */
               unsigned short ws_ypixel;   /* unbenutzt */
           };

       Wenn    sich    die    Fenstergröße    ändert,   wird   das   Signal   SIGWINCH   an   die
       Vordergrund-Prozessgruppe gesandt.

   Senden einer Unterbrechung
       TCSBRK Argument: int arg

              äquivalent zu tcsendbreak(dd, arg)

              Falls das Terminal asynchrone Datenübertragung verwendet und  arg  Null  ist,  wird
              eine  Unterbrechung  (ein Strom von Null-Bits) für 0,25-0,5 Sekunden gesandt. Falls
              das Terminal keine asynchrone serielle Datenübertragung  verwendet,  wird  entweder
              eine  Unterbrechung  gesandt  oder die Funktion kehrt ohne Aktion zurück. Falls arg
              nicht Null ist, ist die Aktion undefiniert.

              (SVr4, UnixWare, Solaris und  Linux  behandeln  tcsendbreak(dd,arg)  mit  von  Null
              verschiedenem  arg  wie  tcdrain(dd).  SunOS  behandelt  arg  als Multiplikator und
              schickt einen Bitstrom, der arg-mal so lang wie bei arg gleich Null ist. DG/UX  und
              AIX  behandeln  arg (wenn von Null verschieden) als Zeitintervall in Millisekunden.
              HP-UX ignoriert arg.)

       TCSBRKP
              Argument: int arg

              Sogenannte »POSIX-Version« von TCSBRK. Sie behandelt von Null verschiedene arg  als
              in  Dezisekunden  gemessenes  Zeitintervall und führt nichts aus, falls der Treiber
              keine Unterbrechungen unterstützt.

       TIOCSBRK
              Argument: void

              Schaltet Unterbrechungen ein, d.h. beginnt das Senden von Null-Bits.

       TIOCCBRK
              Argument: void

              Schaltet Unterbrechungen aus, d.h. beendet das Senden von Null-Bits.

   Software-Flusssteuerung
       TCXONC Argument: int arg

              äquivalent zu tcflow(dd, arg)

              siehe tcflow(3) für die Argumentwerte TCOOFF, TCOON, TCIOFF, TCION

   Pufferzählung und -leerung
       FIONREAD
              Argument: int *argp

              Die Anzahl der Bytes im Eingabepuffer ermitteln.

       TIOCINQ
              Argument: int *argp

              identisch zu FIONREAD

       TIOCOUTQ
              Argument: int *argp

              Die Anzahl der Bytes im Ausgabepuffer ermitteln.

       TCFLSH Argument: int arg

              äquivalent zu tcflush(dd, arg)

              siehe tcflush(3) für die Argumentwerte TCIFLUSH, TCOFLUSH und TCIOFLUSH

       TIOCSERGETLSR
              Argument: int *argp

              Verbindungsstatusregister  ermitteln.  Statusregister  hat  das  Bit   TIOCSER_TEMT
              gesetzt, wenn der Ausgabepuffer leer ist und auch der Hardware-Sender physisch leer
              ist.

              Muss nicht von allen seriellen TTY-Treibern unterstützt werden.

              Wenn das Bit TIOCSER_TEMT gesetzt ist, wartet tcdrain(3)  nicht  und  kehrt  sofort
              zurück.

   Eingabe vortäuschen
       TIOCSTI
              Argument: const char *argp

              Das angegebene Byte in die Eingabewarteschlange einfügen.

   Konsolenausgabe umleiten
       TIOCCONS
              Argument: void

              Lenkt  die  Ausgabe,  die  an  /dev/console  oder  /dev/tty0  gegangen wäre, an das
              angegebene Terminal um. Falls das ein Pseudoterminal-Master war, sende  es  an  den
              Slave.  Vor  Linux  2.6.10  kann  dies  jeder  tun,  solange die Ausgabe noch nicht
              umgeleitet worden war; seit  Linux  2.6.10  kann  dies  nur  ein  Prozess  mit  der
              Capability CAP_SYS_ADMIN tun. Falls die Ausgabe bereits umgeleitet worden war, wird
              EBUSY zurückgeliefert. Die Umleitung kann aber  beendet  werden,  indem  Ioctl  mit
              einem dd, der auf /dev/console oder /dev/tty0 zeigt, verwandt wird.

   Steuerndes Terminal
       TIOCSCTTY
              Argument: int arg

              Macht  das  angegebene  Terminal zum steuernden Terminal des aufrufenden Prozesses.
              Der aufrufende Prozess muss ein Sitzungsleiter sein und darf noch  kein  steuerndes
              Terminal haben. Für diesen Fall sollte arg als Null angegeben werden.

              Falls  dieses  Terminal bereits das steuernde Terminal einer anderen Sitzungsgruppe
              ist, schlägt der Ioctl mit EPERM fehl. Verfügt der Aufrufende allerdings  über  die
              Capability  CAP_SYS_ADMIN  und ist arg 1, dann wird das Terminal gestohlen und alle
              Prozesse, die es als steuerndes Terminal hatten, verlieren es.

       TIOCNOTTY
              Argument: void

              Falls das angegebene Terminal das steuernde Terminal des aufrufenden Prozesses war,
              wird  dieses  steuernde  Terminal  aufgegeben. Falls der Prozess der Sitzungsleiter
              war, dann wird SIGHUP und SIGCONT zu der Vordergrundprozessgruppe gesandt und  alle
              Prozesse in der aktuellen Sitzung verlieren ihr steuerndes Terminal.

   Prozessgruppen- und -sitzungskennung
       TIOCGPGRP
              Argument: pid_t *argp

              wenn erfolgreich, äquivalent zu *argp = tcgetpgrp(dd)

              Die   Prozessgruppenkennung   der   Vordergrundprozessgruppe  auf  diesem  Terminal
              ermitteln.

       TIOCSPGRP
              Argument: const pid_t *argp

              äquivalent zu tcsetpgrp(dd, *argp)

              Die Vordergrundprozessgruppenkennung dieses Terminals setzen.

       TIOCGSID
              Argument: pid_t *argp

              wenn erfolgreich, äquivalent zu *argp = tcgetsid(dd)

              Ermittelt die Sitzungskennung des  angegebenen  Terminals.  Dies  schlägt  mit  dem
              Fehler  ENOTTY  fehl, falls das Terminal kein Master-Pseudoterminal und nicht unser
              steuerndes Terminal ist. Merkwürdig.

   Exklusiver Modus
       TIOCEXCL
              Argument: void

              Setzt das Terminal in den exklusiven Modus. Es sind keine weiteren open(2)-Aktionen
              auf  dem  Terminal erlaubt. (Sie schlagen mit EBUSY fehl, außer der Prozess hat die
              Capability CAP_SYS_ADMIN.)

       TIOCGEXCL
              Argument: int *argp

              (Seit Linux 3.8) Falls sich das Terminal momentan  im  exklusiven  Modus  befindet,
              wird  ein  von  Null  verschiedener  Wert in den durch argp angezeigten Ort gelegt;
              andernfalls wird Null in *argp gelegt.

       TIOCNXCL
              Argument: void

              exklusiven Modus deaktivieren

   Verbindungsmodus
       TIOCGETD
              Argument: int *argp

              Ermittelt den Verbindungsmodus des Terminals.

       TIOCSETD
              Argument: const int *argp

              Setzt den Verbindungsmodus des Terminals.

   Pseudoterminal-Ioctls
       TIOCPKT
              Argument: const int *argp

              Aktiviert (wenn *argp von Null verschieden ist) oder  deaktiviert  den  Paketmodus.
              Kann  nur  auf die Master-Seite eines Pseudoterminals angewandt werden (und liefert
              andernfalls ENOTTY zurück). Im Paketmodus wird  jeder  nachfolgende  Schreibvorgang
              ein  Paket zurückliefern, das ein einzelnes, von Null verschiedenes Steuerbyte oder
              ein einzelnes Byte, das Zero (»\0«),  gefolgt  von  den  auf  der  Slave-Seite  des
              Pseudoterminals   geschriebenen   Daten,   enthält.  Falls  das  erste  Byte  nicht
              TIOCPKT_DATA (0)  ist,  ist  es  eine  ODER-Verknüpfung  eines  oder  mehrerer  der
              folgenden Bits:

              TIOCPKT_FLUSHREAD    Die Lese-Warteschlange für das
                                   Terminal wird geleert.
              TIOCPKT_FLUSHWRITE   Die Schreibe-Warteschlange für
                                   das Terminal wird geleert.
              TIOCPKT_STOP         Ausgabe an das Terminal ist
                                   gestoppt.
              TIOCPKT_START        Ausgabe an das Terminal ist neu
                                   gestartet.
              TIOCPKT_DOSTOP       Die Start- und Stoppzeichen sind
                                   ^S/^Q.
              TIOCPKT_NOSTOP       Die Start- und Stoppzeichen sind
                                   nicht ^S/^Q.

              Während    der    Paketmodus    verwandt    wird,    kann   die   Anwesenheit   von
              Steuerstatusinformationen, die von der  Master-Seite  gelesen  werden  sollen,  für
              außergewöhnliche  Bedingungen durch ein select(2) oder ein poll(2) für das Ereignis
              POLLPRI erkannt werden.

              Dieser Modus wird von rlogin(1) und  rlogind(8)  benutzt,  um  eine  Anmeldung  mit
              Ausgabe in der Ferne und lokaler ^S/^Q-Flusssteuerung zu implementieren.

       TIOCGPKT
              Argument: const int *argp

              (Seit  Linux  3.8)  Liefert die aktuelle Paketmoduseinstellung in der Ganzzahl, auf
              die argp zeigt, zurück.

       TIOCSPTLCK
              Argument: int *argp

              Setzt (falls *argp von Null verschieden ist) oder entfernt (falls *argp  Null  ist)
              die Sperre auf dem Pseudoterminal-Slave-Gerät. (Siehe auch unlockpt(3).)

       TIOCGPTLCK
              Argument: int *argp

              (Seit  Linux 3.8) Legt den aktuellen Sperrstatus des Pseudoterminal-Slave-Geräts in
              den durch argp verwiesenen Ort.

       TIOCGPTPEER
              Argument: int Schalter

              (Seit Linux 4.13)  Ist  ein  Dateideskriptor  in  dd  gegeben,  der  sich  auf  ein
              Pseudoterminal-Master  bezieht,  wird  dieser  (mit den angegebenen open(2)-artigen
              Schalter)  geöffnet  und   ein   neuer   Datei-Deskriptor,   der   sich   auf   ein
              Peer-Pseudoterminal-Slave-Gerät   bezieht,   zurückgeliefert.   Diese  Aktion  kann
              unabhängig davon durchgeführt werden, ob der Pfadname des  Slave-Gerätes  über  den
              Einhängenamensraum des aufrufenden Prozesses zugreifbar ist.

              Sicherheitsbewusste  Anwendungen,  die mit Namensräumen interagieren, könnten diese
              Aktionen statt open(2) mit von ptsname(3) zurückgelieferten Pfadnamen und  ähnliche
              Bibliotheksfunktionen,  die unsichere APIs haben, benutzen. (Beispielsweise kann es
              in einigen Fällen bei der Verwendung von ptsname(3) mit einem  Pfadnamen,  bei  dem
              ein  Devpts-Dateisystem  in  einem anderen Einhängenamensraum eingehängt wurde, zur
              Verwirrung kommen.)

       Die BSD-Ioctls TIOCSTOP, TIOCSTART, TIOCUCNTL und  TIOCREMOTE  wurden  unter  Linux  nicht
       implementiert.

   Modem-Steuerung
       TIOCMGET
              Argument: int *argp

              Den Status der Modem-Bits ermitteln.

       TIOCMSET
              Argument: const int *argp

              Den Status der Modem-Bits setzen.

       TIOCMBIC
              Argument: const int *argp

              Die angegebenen Modem-Bits zurücksetzen.

       TIOCMBIS
              Argument: const int *argp

              Die angegebenen Modem-Bits setzen.

       Die folgenden Bits werden von den obigen Ioctls verwandt:

       TIOCM_LE    DSR (Datensatz bereit/Leitung aktiv)
       TIOCM_DTR   DTR (Datenterminal bereit)
       TIOCM_RTS   RTS (Bitte um Senden)
       TIOCM_ST    Sekundärer TXD (Übertragung)
       TIOCM_SR    Sekundärer RXD (Empfang)
       TIOCM_CTS   CTS (klar zum Senden)
       TIOCM_CAR   DCD (Datenträger-Erkennung)
       TIOCM_CD    siehe TIOCM_CAR
       TIOCM_RNG   RNG (Läuten)
       TIOCM_RI    siehe TIOCM_RNG
       TIOCM_DSR   DSR (Datensatz bereit)

       TIOCMIWAIT
              Argument: int arg

              Wartet  auf  die  Änderung eines der 4 Modem-Bits (DCD, RI, DSR, CTS). Die Bits von
              Interesse  werden  als  Bitmaske  in  arg  angegeben,  indem  jedes  der  Bit-Werte
              (TIOCM_RNG,  TIOCM_DSR,  TIOCM_CD  und  TIOCM_CTS)  mit  ODER  verknüpft  wird. Der
              Aufrufende sollte TIOCGICOUNT verwenden, um zu schauen, welches Bit  sich  geändert
              hat.

       TIOCGICOUNT
              Argument: struct serial_icounter_struct *argp

              Ermittelt  die  Anzahl  der  Interrupts der seriellen Eingabeleitung (DCD, RI, DSR,
              CTS). Die Anzahl wird in die durch argp verwiesene Struktur  serial_icounter_struct
              geschrieben.

              Hinweis: Sowohl 1->0- als auch 0->1-Übergänge werden gezählt, außer für RI, bei dem
              nur 0->1-Übergänge gezählt werden.

   Eine Leitung als lokal kennzeichnen
       TIOCGSOFTCAR
              Argument: int *argp

              (»Get software carrier flag«) Ermittelt den Status des  Schalters  CLOCAL  im  Feld
              c_cflag der Struktur termios.

       TIOCSSOFTCAR
              Argument: const int *argp

              (»Set  software  carrier  flag«) Setzt den Schalter CLOCAL in der Struktur termios,
              wenn *argp von Null verschieden ist, und bereinigt ihn andernfalls.

       Falls  der  Schalter  CLOCAL  für  eine  Leitung   ausgeschaltet   ist,   dann   ist   das
       Hardware-Trägererkennung-  (DCD-)Signal  bedeutend,  und  ein  open(2)  des entsprechenden
       Terminals wird blockieren, bis DCD festgestellt wurde, und die Leitung  verhält  sich  so,
       als ob DCD immer festgestellt worden wäre. Der Software-Träger-Schalter wird normalerweise
       für lokale Geräte eingeschaltet und ist für Leitungen mit Modems ausgeschaltet.

   Linux-spezifisch
       Für den TIOCLINUX-Ioctl, siehe ioctl_console(2).

   Kernel-Fehlersuche
       #include <linux/tty.h>

       TIOCTTYGSTRUCT
              Argument: struct tty_struct *argp

              Die dd entsprechende tty_struct ermitteln. Dieser  Befehl  wurde  in  Linux  2.5.67
              entfernt.

RÜCKGABEWERT

       Der  Systemaufruf  ioctl(2)  liefert  im  Erfolgsfall  0  zurück. Bei einem Fehler wird -1
       zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

FEHLER

       EINVAL Ungültiger Befehlsparameter.

       ENOIOCTLCMD
              Unbekannter Befehl.

       ENOTTY Ungeeigneter dd.

       EPERM  Unzureichende Berechtigung.

BEISPIELE

       Die Bedingungen von DTR auf dem seriellen Port prüfen.

       #include <fcntl.h>
       #include <stdio.h>
       #include <sys/ioctl.h>
       #include <unistd.h>

       int
       main(void)
       {
           int fd, serial;

           fd = open("/dev/ttyS0", O_RDONLY);
           ioctl(fd, TIOCMGET, &serial);
           if (serial & TIOCM_DTR)
               puts("TIOCM_DTR ist gesetzt");
           else
               puts("TIOCM_DTR ist nicht gesetzt");
           close(fd);
       }

       Baud-Rate auf dem seriellen Port ermitteln oder setzen.

       /* SPDX-License-Identifier: GPL-2.0-or-later */

       #include <asm/termbits.h>
       #include <fcntl.h>
       #include <stdio.h>
       #include <stdlib.h>
       #include <sys/ioctl.h>
       #include <unistd.h>

       int
       main(int argc, char *argv[])
       {
       #if !defined BOTHER
           fprintf(stderr, "BOTHER wird nicht unterstützt\n");
           /* Program kann auf TCGETS/TCSETS mit Bnnn-Konstanten zurückfallen */
           exit(EXIT_FAILURE);
       #else
           /* tio-Struktur deklarieren, sein Typ hängt vom unterstützten Ioctl ab */
       # if defined TCGETS2
           struct termios2 tio;
       # else
           struct termios tio;
       # endif
           int fd, rc;

           if (argc != 2 && argc != 3 && argc != 4) {
               fprintf(stderr, "Aufruf: %s Gerät [Ausgabe [Eingabe] ]\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           fd = open(argv[1], O_RDWR | O_NONBLOCK | O_NOCTTY);
           if (fd < 0) {
               perror("open");
               exit(EXIT_FAILURE);
           }

           /* Die aktuellen Einstellungen des seriellen Ports mittels unterstützter Ioctl erhalten */
       # if defined TCGETS2
           rc = ioctl(fd, TCGETS2, &tio);
       # else
           rc = ioctl(fd, TCGETS, &tio);
       # endif
           if (rc) {
               perror("TCGETS");
               close(fd);
               exit(EXIT_FAILURE);
           }

           /* Baud-Rate ändern, wenn mehr Argumente bereitgestellt wurden */
           if (argc == 3 || argc == 4) {
               /* Die aktuelle Ausgabe-Baudrate zurücksetzen und einen neuen Wert einfüllen */
               tio.c_cflag &= ~CBAUD;
               tio.c_cflag |= BOTHER;
               tio.c_ospeed = atoi(argv[2]);

               /* Die aktuelle Eingabe-Baudrate zurücksetzen und einen neuen Wert einfüllen */
               tio.c_cflag &= ~(CBAUD << IBSHIFT);
               tio.c_cflag |= BOTHER << IBSHIFT;
               /* Wenn das 4. Argument nicht bereitgestellt wurde, die Ausgabe-Baudrate wiederverwenden */
               tio.c_ispeed = (argc == 4) ? atoi(argv[3]) : atoi(argv[2]);

               /* Neue Einstellungen für seriellen Port mittels unterstützter Ioctl setzen */
       # if defined TCSETS2
               rc = ioctl(fd, TCSETS2, &tio);
       # else
               rc = ioctl(fd, TCSETS, &tio);
       # endif
               if (rc) {
                   perror("TCSETS");
                   close(fd);
                   exit(EXIT_FAILURE);
               }

               /* Und die wirklich konfigurierten neuen Werte erhalten */
       # if defined TCGETS2
               rc = ioctl(fd, TCGETS2, &tio);
       # else
               rc = ioctl(fd, TCGETS, &tio);
       # endif
               if (rc) {
                   perror("TCGETS");
                   close(fd);
                   exit(EXIT_FAILURE);
               }
           }

           close(fd);

           printf("Ausgabe-Baudrate: %u\n", tio.c_ospeed);
           printf("Eingabe-Baudrate: %u\n", tio.c_ispeed);

           exit(EXIT_SUCCESS);
       #endif
       }

SIEHE AUCH

       ldattach(8), ioctl(2), ioctl_console(2), termios(3), pty(7)

ÜBERSETZUNG

       Die   deutsche   Übersetzung   dieser   Handbuchseite   wurde   von    Helge    Kreutzmann
       <debian@helgefjell.de> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die GNU General Public License
       Version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.