Service de noyau NLuprintf
Objectif
Soumet une demande d'impression d'un message internationalisé à un terminal de contrôle de processus.
Syntaxe
#include <sys/uprintf.h> int NLuprintf (Uprintf)
struct uprintf *Uprintf;Paramètres
| Article | Descriptif |
|---|---|
| Uprintf | Pointe vers une structure de demande Uprintf . |
Descriptif
Le service de noyau NLuprintf soumet une demande de message de noyau internationalisée avec la structure de requête Uprintf spécifiée par le paramètre Uprintf comme entrée. Une fois la demande soumise, le démon Uprintfd extrait, convertit, formate et écrit le message décrit par la structure de requête Uprintf à un terminal de contrôle de processus.
L'appelant doit initialiser la structure de demande Uprintf avant d'appeler le service de noyau NLuprintf . Les zones de la structure de requête Uprintf utilisent plusieurs constantes. Les constantes suivantes sont définies dans le fichier /usr/include/sys/uprintf.h :
- _MAX_MAX
- UP_MAXARGS
- UP_MAX_CAT
- UP_MAXMSG
La structure de demande Uprintf se compose des zones suivantes:
| Zone | Descriptif |
|---|---|
| Uprintf->upf_defmsg | Pointe vers un format de message par défaut. Le format de message par défaut est une chaîne de caractères qui contient l'un ou l'autre des deux types d'objet:
Chaque spécification de conversion se compose d'un% (signe de pourcentage) suivi d'un caractère qui indique le type de conversion à appliquer:
Les spécifications de conversion de précision ou de largeur de zone ne sont pas prises en charge. Longueur maximale de la chaîne de format de message par défaut mise en évidence parUprintf->upf_defmsgZone correspond au nombre de caractères spécifié par la constante _MAX_MAX . :NONE.Uprintf->upf_defmsgDoit être un caractère non terne. Le format de message par défaut est utilisé lors de la construction du message de noyau si le format de message décrit parUprintf->upf_NLsetnoetUprint->upf_NLmsgnoLes zones ne peuvent pas être extraites du catalogue de messages spécifié parUprintf->upf_NLcatname. Les spécifications de conversion contenues dans le format de message par défaut doivent correspondre à celles contenues dans le format de message spécifié par leupf_NLsetnoetupf_NLmsgno. |
| Uprintf->upf_arg[UP_MAXARGS] | Indique, de zéro, le nombre de paramètres de valeur spécifiés par la constante UP_MAXARGS . Un paramètre Valeur peut être un entier, une valeur de caractère ou une valeur de chaîne (pointeur de caractères). La longueur des chaînes est limitée au nombre de caractères spécifié par la constante _MAX_MAX . Les paramètres de valeur de chaîne doivent être des caractères non ull. Le nombre, le type et l'ordre des éléments du tableau de paramètres Valeur doivent correspondre aux spécifications de conversion dans la chaîne de format de message. |
| Uprintf->upf_NLcatname | Pointe vers le nom du fichier de catalogue de messages. Si le nom de fichier de catalogue désigné parUprintf->upf_NLcatnameCommence par une / (barre oblique), on suppose qu'il s'agit d'un nom de chemin absolu. Si le nom de fichier de catalogue n'est pas un nom de chemin absolu, l'environnement de processus détermine les chemins de répertoire à rechercher. La longueur maximale du nom du fichier de catalogue est limitée au nombre de caractères spécifié par la constante UP_MAX_CAT . La valeur de laUprintf->upf_NLcatnameDoit être un caractère non terne. |
| Uprintf->upf_NLsetno | Indique l'ID de l'ensemble. |
| Uprintf->upf_NLmsgno | Indique l'ID du message. :NONE.Uprintf->upf_NLsetnoetUprintf->upf_NLmsgnoLes zones indiquent une chaîne de format de message particulière à extraire du catalogue de messages spécifié par leUprintf->upf_NLcatname:NONE. La longueur maximale du message de noyau construit est limitée au nombre de caractères spécifié par la constante UP_MAXMSG . Les messages plus volumineux, alors le nombre de caractères spécifié par la constante UP_MAXMSG sont supprimés. |
Environnement d'exécution
Le service de noyau NLuprintf peut être appelé à partir de l'environnement Processus uniquement.
Valeurs renvoyées
| Article | Descriptif |
|---|---|
| 0 % | Indique une opération réussie. |
| ENOMEM | Indique que la mémoire n'est pas disponible pour la mémoire tampon de la demande. |
| ENODEV | Indique qu'un terminal de contrôle n'existe pas pour le processus. |
| ESRCH | Indique que le démon Uprintfd n'est pas actif. Aucune demande ne peut être soumise. |
| EINVAL | Indique que le pointeur de nom de fichier de catalogue de messages est nul ou que le nom du fichier de catalogue est supérieur au nombre de caractères spécifié par la constante UP_MAX_CAT . |
| EINVAL | Indique qu'un pointeur de paramètre de valeur de chaîne est nul ou que le paramètre de valeur de chaîne est supérieur au nombre de caractères spécifié par la constante UP_MAX_CAT . |
| EINVAL | Indique l'une des informations suivantes:
|