backend
Table des matières
Retour à l'index
NOM
backend - Programme de transmission de CUPS
SYNOPSIS
backend
backend travail identifiant titre nombre_copies options [
fichier ]
#include <cups/cups.h>
const char *cupsBackendDeviceURI(char **argv);
void cupsBackendReport(const char *schéma_périph,
const char *uri_périph,
const char *marque_et_modéle_périph,
const char *info_périph,
const char *id_périph,
const char *emplacement_périph);
ssize_t cupsBackChannelWrite(const char *tampon,
size_t octets, double délai);
int cupsSideChannelRead(cups_sc_command_t *commande,
cups_sc_status_t *état, char *données,
int *taille_données, double délai);
int cupsSideChannelWrite(cups_sc_command_t commande,
cups_sc_status_t état, const char *données,
int *taille_données, double délai);
DESCRIPTION
Les programmes de transmission de CUPS sont des filtres particuliers
(consultez filter(7)) qui sont utilisés pour envoyer les données à
imprimer et découvrir les différents périphériques d'impression du système.
Comme les filtres, ils doivent être capables de lire depuis un nom de
fichier fourni sur la ligne de commande ou depuis l'entrée standard, en
copiant l'entrée standard vers un fichier temporaire, si nécessaire, pour
l'interface physique.
Le nom de la commande (argv[0]) est défini à la valeur de l'URI du
périphérique de l'imprimante de destination. Toute information
d'identification est retirée de argv[0], les développeurs des programmes
de transmission devraient utiliser la variable d'environnement DEVICE_URI
pour obtenir les informations d'identification quand cela est nécessaire. La
fonction cupsBackendDeviceURI() peut être utilisée pour récupérer la
valeur correcte de l'URI du périphérique.
Les données en retour du périphérique doivent être envoyées au filtre des
travaux en utilisant la fonction cupsBackChannelWrite.
Les programmes de transmission ont la charge de lire les requêtes des canaux
auxiliaires en utilisant la fonction cupsSideChannelRead() et en
répondant avec la fonction cupsSideChannelWrite(). La constante
CUPS_SC_FD précise le descripteur de fichier qui sera observé pour de
nouvelles requêtes.
DÉCOUVERTE DES PÉRIPHÉRIQUES
Quand il est exécuté sans paramètre, le programme de transmission doit
afficher sur la sortie standard les périphériques et schémas qu'il gère ou
qu'il annonce. La sortie consiste en zéro ou plus de lignes de la forme
suivante :
classe_périphérique schéma "Unknown" "info_périphérique"
classe_périphérique URI_périphérique "marque_et_modèle_périphérique" "info_périphérique"
classe_périphérique URI_périphérique "marque_et_modèle_périphérique" "info_périphérique" "id_périphérique"
classe_périphérique URI_périphérique "marque_et_modèle_périphérique" "info_périphérique" "id_périphérique" "emplacement_périphérique"
La fonction cupsBackendReport() peut être utilisée pour créer ces lignes
et gérer les caractères de protection nécessaires dans les différentes
chaînes.
Le champ classe_périphérique peut prendre une de ces valeurs :
- direct
-
L'URI du périphérique se réfère à un accès direct au périphérique, sans
option, comme pour un périphérique sur port parallèle, USB ou SCSI.
- file
-
L'URI du périphérique se réfère à un fichier sur le disque.
- network
-
L'URI du périphérique se réfère à un périphérique réseau et respecte les
formes générales des URI réseau.
- serial
-
L'URI du périphérique se réfère à un périphérique série avec une vitesse
configurable et d'autres options. Si l'URI du périphérique contient la
vitesse, elle représente la vitesse maximale gérée par le périphérique.
Le champ schéma fournit le schéma d'URI géré par le programme de
transmission. Les programmes de transmission ne doivent utiliser cette forme
que s'ils gèrent tout URI utilisant ce schéma. Le champ uri_périphérique
indique l'URI complet à utiliser pour la communication avec le périphérique.
Le champ marque_et_modèle_périphérique précise la marque et le modèle du
périphérique, par exemple « Exemple Foojet 2000 ». Si la marque et le modèle
ne sont pas connus, vous devez indiquer « Inconnu ».
Le champ info_périphérique ajoute des informations à propos du
périphérique. Généralement cela comprend la marque et le modèle avec le
numéro de port ou l'adresse réseau, par exemple « Exemple Foojet 2000
USB n°1 ».
Le champ optionnel id_périphérique indique l'identifiant IEEE-1284 du
périphérique qui est utilisé pour sélectionner le pilote correspondant.
Le champ optionnel emplacement_périphérique indique l'emplacement
physique du périphérique qui est utilisé la plupart du temps pour
pré-remplir l'emplacement du périphérique lors de l'ajout d'une imprimante.
PERMISSIONS
Les programmes de transmission sans droit de lecture et d'exécution pour
tout le monde sont exécutés en tant que superutilisateur. Sinon, le
programme de transmission est exécuté en utilisant un compte non privilégié,
habituellement « lp ».
CODE DE RETOUR
Les codes de retour suivants sont définis pour les programmes de
transmission :
- CUPS_BACKEND_OK
-
Le fichier à imprimer a été transmis avec succès au périphérique ou au
serveur distant.
- CUPS_BACKEND_FAILED
-
Le fichier à imprimer n'a pas été transmis avec succès au périphérique ou au
serveur distant. L'ordonnanceur réagira en annulant le travail, réessayant
l'impression ou en stoppant la file d'impression en fonction de l'état de
l'attribut printer-error-policy.
- CUPS_BACKEND_AUTH_REQUIRED
-
Le fichier à imprimer n'a pas été transmis avec succès parce que des données
d'identification valables sont nécessaires. L'ordonnanceur réagira en
suspendant le travail et en ajoutant le mot clé
« cups-held-for-authentication » à l'attribut de description de tâche
« job-reasons ».
- CUPS_BACKEND_HOLD
-
Le fichier à imprimer n'a pas été transmis avec succès parce qu'il ne peut
pas être imprimé à ce moment. L'ordonnanceur conservera le travail
d'impression.
- CUPS_BACKEND_STOP
-
Le fichier à imprimer n'a pas été transmis avec succès parce qu'il ne peut
pas être imprimé à ce moment. L'ordonnanceur stoppera la file d'impression.
- CUPS_BACKEND_CANCEL
-
Le fichier à imprimer n'a pas été transmis avec succès parce qu'un attribut
n'est pas géré ou le travail a été annulé à l'imprimante. L'ordonnanceur
répond à cela en annulant le travail d'impression.
- CUPS_BACKEND_RETRY
-
Le fichier à imprimer n'a pas été transmis avec succès à cause d'un incident
temporaire. L'ordonnanceur tentera de relancer la tâche plus tard — les
autres tâches pourraient imprimer avant celle-là.
- CUPS_BACKEND_RETRY_CURRENT
-
Le fichier à imprimer n'a pas été transmis avec succès à cause d'un incident
temporaire. L'ordonnanceur tentera de relancer la tâche immédiatement en
empêchant d'autres tâches intermédiaires.
Tous les autres codes de retour sont réservés.
ENVIRONNEMENT
En plus des variables d’environnement listées dans cups(1) et
filter(7), les programmes peuvent attendre la variable d’environnement
suivante :
- DEVICE_URI
-
L'URI du périphérique associé à l'imprimante.
FICHIERS
/etc/cups/cups-files.conf
NOTES
Les programmes de transmission de CUPS ne sont généralement pas conçus pour
être lancés directement par l'utilisateur. À côté du problème lié à
l'adresse URI du périphérique (argv[0] et la variable d'environnement
DEVICE_URI contiennent l'adresse URI du périphérique), les programmes de
transmission de CUPS attendent également des variables d'environnement et
descripteurs de fichier spécifiques, et sont généralement lancés dans une
session utilisateur qui (sous macOS) possède des restrictions
supplémentaires et affecte la façon dont ils fonctionnent. Les programmes de
transmission peuvent également être installés avec des droits limités (0500
ou 0700) qui informent l'ordonnanceur de les lancer avec les droits du
superutilisateur au lieu d'un utilisateur système non privilégié (comme
« lp »).
À moins que vous ne soyez développeur, ou que vous sachiez ce que vous
faites, veuillez ne pas lancer les programmes de transmission directement. À
la place vous pouvez utiliser les programmes lp(1) ou lpr(1) pour
envoyer un travail d'impression ou le programme lpinfo(8) pour demander
quelles imprimantes disponibles en utilisant le programme de
transmission. La seule exception est le programme de transmission SNMP
— voir snmpbackend(8) pour plus d'information.
NOTES
Les pilotes et les programmes de transmission de CUPS sont devenus obsolètes
et ne seront plus entretenus dans une prochaine publication de CUPS. Les
imprimantes qui ne gèrent pas IPP peuvent être gérées en utilisant des
applications telles que ippeveprinter(1).
VOIR AUSSI
cups(1), cups-files.conf(5), cups-snmp(8), cupsd(8),
filter(7), lp(1), lpinfo(8), lpr(1),
Aide en ligne de CUPS : <URL:http://localhost:631/help>
COPYRIGHT
Copyright © 2020-2024 by OpenPrinting.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- DÉCOUVERTE DES PÉRIPHÉRIQUES
-
- PERMISSIONS
-
- CODE DE RETOUR
-
- ENVIRONNEMENT
-
- FICHIERS
-
- NOTES
-
- NOTES
-
- VOIR AUSSI
-
- COPYRIGHT
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:36 GMT, September 19, 2025