Estuve hablando con knithx el otro día sobre esto. Parece una tarea trivial, y de hecho lo es. Pero el problema es que el 95% de los casos, es algo que explican mal. Y lo tengo comprobado yo mismo multitud de veces.
El primer problema reside en el concepto de “teclado”. En C, el teclado es un fichero, designado por stdin. Y como todos los ficheros en C, stdin tiene una declaración del tipo:
FILE *stdin;
Declarado en stdio.h. Que quede bien claro, desde nuestro programa no tendremos un teclado. Tendremos un archivo “un poco especial” que todo lo que leemos de él se corresponde milagrosamente con lo que introducimos por el teclado, nada más. A esto habría que añadir que en sistemas Linux, stdin se corresponde con el descriptor de fichero 0, y que puede ser alterado externamente por un programa, etcétera, etcétera. No voy a centrarme en eso, intentaré explicar los problemas que tiene todo esto tan sólo con la interfaz de C.
Read the rest of this entry ?
