Provided by: cups-daemon_2.2.7-1ubuntu2_amd64 bug

NAME

       backend - CUPS Backend-Übertragungsschnittstellen

SYNOPSIS

       backend
       backend Auftrag Benutzer Titel Anzahl-Kopien Optionen [ Dateiname ]

       #include <cups/cups.h>

       const char *cupsBackendDeviceURI(char **argv);

       void cupsBackendReport(const char *device_scheme,
                              const char *device_uri,
                              const char *device_make_and_model,
                              const char *device_info,
                              const char *device_id,
                              const char *device_location);

       ssize_t cupsBackChannelWrite(const char *buffer,
                                    size_t bytes, double timeout);

       int cupsSideChannelRead(cups_sc_command_t *command,
                               cups_sc_status_t *status, char *data,
                               int *datalen, double timeout);

       int cupsSideChannelWrite(cups_sc_command_t command,
                                cups_sc_status_t status, const char *data,
                                int datalen, double timeout);

BESCHREIBUNG

       Backends  sind  eine  besondere  Art  von  filter(7),  die  verwendet  werden, um Daten zu
       verschiedenen Geräten auf dem System zu senden und entsprechende Geräte zu ermitteln.

       Wie Filter müssen Backends in der Lage sein, aus Dateinamen auf der Befehlszeile oder  von
       der Standardeingabe zu lesen, die Standardeingabe in eine temporäre Datei zu kopieren, wie
       dies von der physischen Schnittstelle gefordert wird.

       Der  Befehlsname  (argv[0])  wird  auf  die  Geräte-URI  des  Zieldruckers  gesetzt.  Jede
       Authentifizierungsinformation  wird  aus  argv[0] entfernt, daher wird Backend-Entwicklern
       empfohlen,    die    Umgebungsvariable    DEVICE_URI    zu    verwenden,    wenn     immer
       Authentifizierungsinformationen  benötigt werden. Die Funktion cupsBackendDeviceURI() kann
       zum Ermitteln der korrekten Geräte-URI verwandt werden.

       Rückgeleitete Daten vom Gerät sollten an die Filter für die Aufträge mittels der  Funktion
       cupsBackChannelWrite weitergeleitet werden.

       Backends   sind   dafür   verantwortlich,   mittels   der  Funktion  cupsSideChannelRead()
       Seitenkanalanfragen zu lesen und mit der Funktion cupsSideChannelWrite() zu antworten. Die
       Konstante  CUPS_SC_FD definiert den Dateideskriptor, der für eingehende Anfragen überwacht
       werden sollte.

   GERÄTE-ERMITTLUNG
       Beim Aufruf ohne Argumente sollte das Backend die Geräte und unterstützten oder beworbenen
       Schemata auf der Standardausgabe aufführen. Die Ausgabe besteht aus null oder mehr Zeilen,
       die in einer der folgenden Formen vorliegen:

           device-class scheme "Unknown" "device-info"
           device-class device-uri "device-make-and-model" "device-info"
           device-class device-uri "device-make-and-model" "device-info" "device-id"
           device-class device-uri "device-make-and-model" "device-info" "device-id" "device-location"

       Die Funktion cupsBackendReport() kann dazu verwandt werden, um diese  Zeilen  zu  erzeugen
       und in den verschiedenen Zeichenketten alle notwendigen Zeichen zu maskieren.

       Das Feld device-class enthält einen der folgenden Werte:

       direct
            Die  Geräte-URI bezieht sich auf spezielle Geräte mit direktem Zugriff ohne Optionen,
            wie z.B. Parallelport-, USB- oder SCSI-Geräte.

       file Die Geräte-URI bezieht sich auf eine Datei auf dem Speichermedium.

       network
            Die Geräte-URI bezieht sich auf ein vernetztes Gerät und folgt der  allgemeinen  Form
            für vernetzte URIs.

       serial
            Die  Geräte-URI  bezieht  sich  auf  ein  serielles  Gerät mit einer konfigurierbaren
            Baudrate  und  anderen  Optionen.  Falls  die  Geräte-URI  einen  Baud-Wert  enthält,
            repräsentiert er die maximale vom Gerät unterstützte Baudrate.

       Das  Feld  scheme  stellt das vom Backend unterstützte URI-Schema bereit. Backends sollten
       diese Form nur verwenden, wenn das Backend jede dem Schema folgende URI  unterstützt.  Das
       Feld  device-uri  legt die komplette URI, die bei der Kommunikation mit dem Gerät verwandt
       werden soll, fest.

       Das Feld device-make-and-model legt die Marke und das Modell des Gerätes,  z.B.  »Beispiel
       Foojet 2000«, fest. Falls die Marke und das Modell nicht bekannt ist, müssen Sie »Unknown«
       melden.

       Das Feld device-info legt zusätzliche Informationen über das  Gerät  fest.  Typischerweise
       enthält  es  die  Marke und das Modell zusammen mit der Port-Nummer oder der Netz-Adresse,
       z.B. »Beispiel Foojet 2000 USB #1«.

       Das optionale Feld device-id legt die IEEE-1284-Geräte-ID-Zeichenkette für das Gerät,  die
       zur Auswahl des passenden Treibers verwandt wird, fest.

       Das  optionale  Feld device-location legt den physischen Standort des Geräts fest. Es wird
       oft dazu verwandt, die Drucker-Standort-Attribute  vorab  zu  belegen,  wenn  ein  Drucker
       hinzugefügt wird.

   RECHTE
       Backends,  denen  die  Lese- und Ausführungsrechte für »world« (andere) fehlen, werden als
       Benutzer »root« ausgeführt. Andernfalls läuft das  Backend  unter  einem  unprivilegierten
       Benutzerkonto, typischerweise »lp«.

EXIT-STATUS

       Die nachfolgenden Exit-Codes sind für Backends definiert:

       CUPS_BACKEND_OK
            Die Druckdatei wurde erfolgreich an das Gerät oder den entfernten Server übertragen.

       CUPS_BACKEND_FAILED
            Die  Druckdatei  wurde nicht erfolgreich zum Gerät oder entfernten Server übertragen.
            Der Auftragsplaner (Scheduler) wird daraufhin  den  Auftrag  abbrechen,  den  Auftrag
            erneut  versuchen oder die Warteschlange anhalten, abhängig vom Zustand des Attributs
            printer-error-policy.

       CUPS_BACKEND_AUTH_REQUIRED
            Die    Druckdatei    wurde    nicht    erfolgreich     übertragen,     da     gültige
            Authentifizierungsinformationen benötigt werden. Der Auftragsplaner wird darauf durch
            Halten des Auftrags reagieren und das Schlüsselwort »cups-held-for-authentication« zu
            dem Auftragsbeschreibungsattribut »job-reasons« hinzufügen.

       CUPS_BACKEND_HOLD
            Die  Druckdatei  wurde  nicht  erfolgreich  übertragen, da sie derzeit nicht gedruckt
            werden kann. Der Auftragsplaner wird darauf durch Halten des Auftrags reagieren.

       CUPS_BACKEND_STOP
            Die Druckdatei wurde nicht erfolgreich übertragen,  da  sie  derzeit  nicht  gedruckt
            werden  kann.  Der  Auftragsplaner  wird  durch  Anhalten  der  Warteschlange  darauf
            reagieren.

       CUPS_BACKEND_CANCEL
            Die Druckdatei wurde nicht erfolgreich übertragen, da eine oder mehrere der Attribute
            nicht  unterstützt  werden  oder  der  Auftrag  am  Drucker  abgebrochen  wurde.  Der
            Auftragsplaner wird durch Abbruch des Auftrages darauf reagieren.

       CUPS_BACKEND_RETRY
            Die Druckdatei wurde aufgrund eines temporären Problems nicht erfolgreich übertragen.
            Der Auftragsplaner wird den Auftrag zu einem zukünftigen Zeitpunkt erneut versuchen -
            andere Aufträge können vor diesem gedruckt werden.

       CUPS_BACKEND_RETRY_CURRENT
            Die Druckdatei wurde aufgrund eines temporären Problems nicht erfolgreich übertragen.
            Der  Auftragsplaner  wird  den  Auftrag sofort erneut versuchen, ohne andere Aufträge
            dazwischen zu erlauben.

       Alle anderen Exit-Codes sind reserviert.

UMGEBUNG

       Zusätzlich  zu  den  in  cups(1)  und  filter(7)  aufgeführten  Umgebungsvariablen  können
       CUPS-Backends die folgenden Umgebungsvariablen erwarten:

       DEVICE_URI
            Die mit dem Drucker verbundene Geräte-URI.

DATEIEN

       /etc/cups/cups-files.conf

HINWEISE

       CUPS-Backends  wurden  im  Allgemeinen  nicht  dafür  entwickelt,  um  vom Benutzer direkt
       aufgerufen zu werden. Neben der Geräte-URI (argv[0] und der Umgebungsvariablen DEVICE_URI,
       die  die  Geräte-URI enthält) erwarten die CUPS-Backends auch bestimmte Umgebungsvariablen
       und Dateideskriptoren und laufen typischerweise auch in einer Benutzersitzung, die  (unter
       macOS)  zusätzlichen  Beschränkungen  unterliegt,  die  die Ausführung betreffen. Backends
       können auch mit eingeschränkten Rechten installiert  werden  (0500  oder  0700),  die  dem
       Auftragsplaner  mitteilen,  sie  als  Benutzer »root« statt des unprivilegierten Benutzers
       (typischerweise »lp«) auszuführen.

       Sofern Sie kein Entwickler sind und nicht wissen, was Sie tun,  führen  Sie  kein  Backend
       direkt aus. Verwenden Sie stattdessen die Programme lp(1) oder lpr(1), um Druckaufträge zu
       übersenden oder das Programm lpinfo(8), um verfügbare Drucker über ein Backend abzufragen.
       Die   einzige  Ausnahme  ist  das  SNMP-Backend  -  lesen  Sie  cups-snmp(8)  für  weitere
       Informationen.

SIEHE AUCH

       cups(1), cups-files.conf(5), cups-snmp(8), cupsd(8), filter(7), lp(1), lpinfo(8), lpr(1),
       CUPS-Online-Hilfe (http://localhost:631/help)

COPYRIGHT

       Copyright © 2007-2017 by Apple Inc.