Servicio de kernel NLuprintf
Finalidad
Envía una solicitud para imprimir un mensaje internacionalizado a un terminal de control de proceso.
Sintaxis
#include <sys/uprintf.h> int NLuprintf (Uprintf)
struct uprintf *Uprintf;Parámetros
| Elemento | Descripción |
|---|---|
| Uprintf | Apunta a una estructura de solicitud de uprintf . |
Descripción
El servicio de kernel de NLuprintf envía una solicitud de mensaje de kernel internacionalizado con la estructura de solicitud de uprintf especificada por el parámetro Uprintf como entrada. Una vez que la solicitud se ha enviado correctamente, el daemon de uprintfd recupera, convierte, formatea y escribe el mensaje descrito por la estructura de solicitud de uprintf en un terminal de control de proceso.
El llamante debe inicializar la estructura de solicitud de uprintf antes de llamar al servicio de kernel de NLuprintf . Los campos de la estructura de solicitud de uprintf utilizan varias constantes. Las constantes siguientes se definen en el archivo /usr/include/sys/uprintf.h :
- UP_MAXSTR
- UP_MAXARGS
- UP_MAXCAT
- UP_MAXMSG
La estructura de solicitud de uprintf consta de los campos siguientes:
| Campo | Descripción |
|---|---|
| Uprintf->upf_defmsg | Apunta a un formato de mensaje predeterminado. El formato de mensaje predeterminado es una serie de caracteres que contiene uno o ambos tipos de objetos:
Cada especificación de conversión consta de un porcentaje (signo de porcentaje) seguido de un carácter que indica el tipo de conversión que se debe aplicar:
Las especificaciones de conversión de precisión y anchura de campo no están soportadas. La longitud máxima de la serie de formato de mensaje predeterminada a la que apunta laUprintf->upf_defmsgcampo es el número de caracteres especificado por la constante de UP_MAXSTR . Los 2Uprintf->upf_defmsgdebe ser un carácter no nulo. El formato de mensaje predeterminado se utiliza en la construcción del mensaje de kernel si el formato de mensaje descrito por elUprintf->upf_NLsetnoyUprint->upf_NLmsgnono se pueden recuperar del catálogo de mensajes especificado porUprintf->upf_NLcatname. Las especificaciones de conversión contenidas en el formato de mensaje predeterminado deben coincidir con las contenidas en el formato de mensaje especificado por elupf_NLsetnoyupf_NLmsgnocampos. |
| Uprintf->upf_arg[UP_MAXARGS] | Especifica desde cero hasta el número de parámetros de valor especificados por la constante de UP_MAXARGS . Un parámetro Valor puede ser un valor entero, un valor de carácter o un valor de serie (puntero de caracteres). Las series están limitadas en longitud al número de caracteres especificado por la constante de UP_MAXSTR . Los parámetros de valor de serie deben ser caracteres no nulos. El número, el tipo y el orden de los elementos de la matriz de parámetros de Valor deben coincidir con las especificaciones de conversión dentro de la serie de formato de mensaje. |
| Uprintf->upf_NLcatname | Apunta al nombre de archivo del catálogo de mensajes. Si el nombre de archivo de catálogo al que hace referencia elUprintf->upf_NLcatnameempieza con una/(barra inclinada), se supone que es un nombre de vía de acceso absoluto. Si el nombre de archivo de catálogo no es un nombre de vía de acceso absoluta, el entorno de proceso determina las vías de acceso de directorio a buscar. La longitud máxima del nombre de archivo de catálogo está limitada al número de caracteres especificado por la constante de UP_MAXCAT . El valor de laUprintf->upf_NLcatnamedebe ser un carácter no nulo. |
| Uprintf->upf_NLsetno | Especifica el ID de conjunto. |
| Uprintf->upf_NLmsgno | Especifica el ID de mensaje. Los 2Uprintf->upf_NLsetnoyUprintf->upf_NLmsgnoLos campos especifican una serie de formato de mensaje en particular que se debe recuperar del catálogo de mensajes especificado por elUprintf->upf_NLcatname:NONE. La longitud máxima del mensaje de kernel construido se limita al número de caracteres especificado por la constante de UP_MAXMSG . Los mensajes más grandes entonces se descartan el número de caracteres especificado por la constante de UP_MAXMSG . |
Entorno de ejecución
El servicio de kernel de NLuprintf sólo se puede llamar desde el entorno de proceso .
Valores de retorno
| Elemento | Descripción |
|---|---|
| 0 | Indica una operación satisfactoria. |
| ENOMEM | Indica que la memoria no está disponible para almacenamiento intermedio de la solicitud. |
| ENDEV | Indica que no existe un terminal de control para el proceso. |
| ESRCH | Indica que el daemon de uprintfd no está activo. No se pueden presentar solicitudes. |
| EINVAL | Indica que el puntero de nombre de archivo de catálogo de mensajes es nulo o que el nombre de archivo de catálogo es mayor que el número de caracteres especificado por la constante de UP_MAXCAT . |
| EINVAL | Indica que un puntero de parámetro de valor de serie es nulo o que el parámetro de valor de serie es mayor que el número de caracteres especificado por la constante de UP_MAXCAT . |
| EINVAL | Indica una de las acciones siguientes:
|