CUESTIÓN
¿Qué es lo que debo entender cuando se dice:
"tal programa devuelve tal valor al
sistema operativo"?
SOLUCIÓN
Cuando se explica una cuestión, a veces se simplifica dicha explicación
con datos si no incorrectos, al menos inexactos. Esto es así porque
explicar toda la verdad llevaría excesivo tiempo para el resultado que
se pretente obtener.
En el caso que nos ocupa, la visión que hasta ahora tenéis de la
ejecución de una orden y la realidad son las siguientes:
FÁBULA
"En un país multicolor, un usuario de UNIX va a realizar un
listado de un directorio. Teclea ls -l
. El
sistema operativo, que por cierto es muy listo, arranca
la orden ls
y a su función main
le pasa como argumentos ls y -l. Cuando la orden acaba,
la función main
del programa ejecutable
ls
devuelve al sistema operativo un valor
que indica si la operación se ha realizado con éxito o no"
LA CRUDA REALIDAD
El contenido que viene a continuación puede afectar a
personas especialmente sensibles. El autor declina toda
responsabilidad.
"Existe un programa llamado ksh
que efectúa
una llamada al sistema read
. El usuario
teclea ls -l
. read
vuelve y
almacena lo tecleado en una cadena de caracteres.
ksh
tiene un hijo y se queda esperando indolente a
su muerte. El hijo trocea la cadena leída por el padre y,
con ella, efectúa una llamada a execlp
.
Cuando el hijo, transformado en ls
, acaba de
listar, muere. Su función main
devuelve
éxito o fracaso para que lo reciba en el wait
el padre. El padre almacena en la variable de entorno
$?
el código devuelto por el hijo y,
mediante otra llamada a read
, queda a la
espera de una nueva orden del usuario. El sistema operativo
salió a comprar tabaco y aún lo están buscando."
Como veis, la historia no tiene desperdicio: un padre/madre soltero
que abandona a su hijo a su suerte. Un hijo transformista que se
hace rico para luego darle todo a su ingrato padre. Y un personaje
del que todo el mundo habla pero nadie sabe dónde está.
Dejando discusiones filosóficas aparte acerca de qué es mejor o quién
es más feliz, el niño que cree en los Reyes Majos o el que cree que
son los padres (ignorantes ellos), ¿estáis seguros de que la última
versión contiene toda la verdad y todo lo que contiene es
verdad?
© 2002 Guillermo González Talaván.