Provided by: cups-daemon_2.3.1-9ubuntu1.9_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 irgendeine 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 fernen Server übertragen.

       CUPS_BACKEND_FAILED
            Die Druckdatei wurde nicht erfolgreich zum Gerät oder fernen 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.

HINWEISE

       CUPS-Druckertreiber und -Backends sind veraltet und werden in einer zukünftigen Funktionsveröffentlichung
       von CUPS nicht mehr unterstützt. Drucker, die IPP nicht  unterstützen,  können  mittels  Anwendungen  wie
       ippeveprinter(1) unterstützt werden.

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-2019 by Apple Inc.