Subrutina knlist
Finalidad
Convierte nombres a direcciones en el sistema en ejecución.
Sintaxis
#include <nlist.h>
Descripción
La subrutina knlist permite que un programa busque las direcciones de los símbolos exportados por las extensiones de kernel y kernel.
El campo n_name de la estructura nlist especifica el nombre de un símbolo para el que se solicita la dirección. Si se encuentra el símbolo, su dirección se guarda en el campo n_value y los campos restantes no se modifican. Si no se encuentra el símbolo, todos los campos, distintos de n_name, se establecen en 0.
rc = knlist((struct nlist *)Nlist64,
NumberOfElements,
sizeof(structure nlist64));
Las estructuras nlist y nlist64 incluyen los campos siguientes:
| Elemento | Descripción |
|---|---|
| char *n_name | Especifica el nombre del símbolo para el que se va a recuperar la dirección. |
| long n_value | La dirección del símbolo, rellenada por la subrutina knlist . Este campo se incluye en la estructura nlist . |
long long n_value |
La dirección del símbolo, rellenada por la subrutina knlist . Este campo se incluye en la estructura nlist64 . |
#undef n_name- Si se van a incluir los archivos nlist.h y netdb.h , el archivo netdb.h se debe incluir antes del archivo nlist.h para evitar un conflicto con el miembro de estructura n_name . Del mismo modo, si se van a incluir los archivos a.out.h y netdb.h , el archivo netdb.h se debe incluir antes del archivo a.out.h para evitar un conflicto con la estructura n_name .
- Si se incluye el archivo netdb.h y el archivo nlist.h o syms.h ,n_namese definirá como_n._n_name. Esta definición le permite acceder a lan_nameen la estructura nlist o Syn . Si necesita acceder a lan_nameen la estructura netent , desdefina eln_nameentrando en:
antes de acceder aln_nameen la estructura netent . Si necesita acceder a lan_nameen una estructura Syn o nlist después de desdefinirla, redefina lan_namecon:#undef n_name#define n_name _n._n_name
Parámetros
| Elemento | Descripción |
|---|---|
| NLIST | Apunta a una matriz de estructuras nlist o nlist64 . |
| NumberOfElements | Especifica el número de estructuras en la matriz de estructuras nlist o nlist64 . |
| Tamaño | Especifica el tamaño de cada estructura. Los únicos valores permitidos son sizeof(struct nlist) o sizeof(struct
nlist64). |
Valores de retorno
Tras la finalización satisfactoria, la subrutina knlist devuelve un valor de 0. En caso contrario, se devuelve un valor de -1 y se establece la variable errno para indicar el error.
Códigos de error
La subrutina knlist falla cuando una de las siguientes es verdadera:
| Elemento | Descripción |
|---|---|
| EINVAL | El parámetro " NumberOfElements " es menor que 1 o el parámetro " Talla " no es ni " sizeof(struct
nlist) ni " sizeof(struct nlist64). |
| EFAULT | El parámetro NList no es una dirección válida. No se han encontrado uno o más símbolos en la matriz especificada por el parámetro Nlist . La dirección de uno de los símbolos no cabe en el campo n_value . Esto sólo es posible si el llamante es un programa de 32 bits y el parámetro Tamaño es |