8. Invocación de la llamada al sistema
01.11.2013 00:00
Invocación con un programa en lenguaje C
Para comprobar que el nuevo kernel ya tiene implementada la llamada al sistema que se creó desde un inicio, puede probarse este código:
prueba.c
#include
|
Hay que observar que usa la primitiva de la libc syscall, la cual se encarga hacer la llamada al sistema con el código que se le pasa de parámetro (en este caso 351, la llamada que se implementó, que retornará el número 2013 cuando se mande a llamar).
Para compilar el programa, se usan los siguientes comandos:
gcc prueba.c -o Prueba |
Si todo salió bien, al compilar este programa y ejecutarlo, deberá dar el siguiente resultado:
./Prueba ---------- Ejemplo de llamada al kernel especial ---------- > Retorno de la llamada: = 2013 , ErrNo = 0 |
lo que indica que la llamada está funcionando y haciendo lo que debe .
Si se compila y ejecuta el mismo programa en un kernel que no tiene implementada esta llamada a sistema, o se cambia el número 351 por otro, la salida será semejante a:
./Prueba ---------- Ejemplo de llamada al kernel especial ---------- > Retorno de la llamada: = -1 , ErrNo = 38 |
./Prueba ---------- Ejemplo de llamada al kernel especial ---------- > Retorno de la llamada: = -1 , ErrNo = 22 |
Invocación correcta:
Invocación incorrecta:
en donde syscall retornó -1, y errno tiene el valor 38 u otro número, que significa function not implemented (función no implementada) u otro error semejante.
Contenido
TEXTO
- ¿Qué es una llamada al sistema?
- ¿Cómo funciona una llamada al sistema?
- Kernel implementado y Primeros pasos
- Forma de descompresión
- Código fuente de la llamada al sistema
- Archivos modificados
- Forma de compilación
- Invocación de la llamada al sistema
- Anexos
- Referencias
DESCARGAS
- Document o PDF
- Presentació n don diapositivas