Conio.h
Enviado por zayashfc • 18 de Junio de 2014 • Síntesis • 3.245 Palabras (13 Páginas) • 344 Visitas
conio.h
Es una C archivo de cabecera utilizado en la antigua MS- DOS compiladores para crear interfaces de usuario de texto. No se describe en El lenguaje de programación C libro, y no es parte de la librería estándar de C, ISO C ni es requerido por POSIX.
Este encabezado declara varias funciones útiles para realizar la colección de " consola de entrada y salida "de un programa. La mayoría de los compiladores de C que se dirigen a DOS, Windows 3.x, Phar Lap, Dosx, OS / 2O Win3 tienen esta cabecera y el suministro de las funciones de librería asociada en la librería de C por defecto. La mayoría de los compiladores de C que se dirigen a UNIX y Linux No cuentan con el encabezado y no proporcionan las funciones de librería.
La biblioteca conio.h no es estándar sino que es propiedad de Borland, y está incluida en sus compiladores. Es una biblioteca de manejo de entrada y salida de datos en la consola para el sistema DOS. Que no sea estándar significa que no la encontraras implementada -o al menos totalmente- en muchos compiladores, y más importante, en otros sistemas, lo que reduce la portabilidad de tu código. Por otro lado la biblioteca se considera obsoleta, y es posible que algunas de las funciones que incluye no funcionen o lo hagan incorrectamente.
Pero lo más importante es darse cuenta de que esta biblioteca no es estrictamente necesaria para programar. Por experiencia las funciones más usadas de esta biblioteca son, con diferencia, clrscr() gotoxy() y getch().
¿Por qué es fuente de problemas y discrepancias? Pues principalmente porque al no pertenecer a la biblioteca estándar de C y sólo viene integrada con compiladores Borland, hace que ciertos códigos no sea posible compilarlos sin antes añadirá manualmente la librería.
Por otro lado está el detalle de que sólo es posible utilizarlos en entornos de MS-DOS, es decir, Windows, y dada la cantidad de entornos y sistemas operativos actuales, muchos no ven necesario seguir utilizando ésta librería. En caso de querer utilizarla en Linux es necesario seguir unas instrucciones.
Conio.h ofrece Funciones de entrada / salida Las funciones de E/S (Entrada / Salida, I/O, Imput / Output) permiten leer y escribir datos entre archivos y dispositivos. En C no hay escrituras de archivos predefinidas, todos los datos se tratan como secuencias de bytes. La lista de funciones de E/S se han agrupado de acuerdo a las tareas especificas que realizan:
1. Secuencias o flujos (stream)
2. Bajo nivel
3. Consola y puertos.
Contiene los prototipos de las funciones, macros, y constantes para preparar y manipular la consola en modo texto en el entorno de MS-DOS®.
Compilado y linkado
Para compilar un programa que use esta biblioteca hay que incluir el fichero de cabecera conio.h:
Para linkar un programa que use esta biblioteca hay que incluir el fichero de fuentes conio.c o enlazar la biblioteca libconio.a.
Las rutinas
Rutinas de inicialización y finalización
Para usar las rutinas de la biblioteca conio no es necesario inicializar ninguna estructura ni llamar a ninguna rutina de inicialización
Rutinas de escritura
Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de I/O.
Aunque se trate de una biblioteca no estándar, conio se ha convertido para muchos programadores educados o acostumbrados a compiladores de Borland® en una herramienta imprescindible para crear programas de consola.
Adicionalmente, cuando se crean aplicaciones de consola usando compiladores para Windows, como Dev-C++, a menudo necesitamos compilar programas escritos originalmente para compiladores Borland®. O sencillamente, queremos dotar a nuestros programas de consola de una apariencia más amigable y agradable.
Por supuesto, podemos recurrir a las funciones de consola del API de Windows, pero a menudo la conversión entre funciones de conio y sus equivalentes en el API no son tan sencillas, y en cualquier caso requiere cierto tiempo.
Este documento incluye una emulación de conio para el compilador Mingw, usado por el entorno de programación Dev-C++.
Es cierto que Dev-C++ incluye una emulación de conio, pero a nuestro juicio no es lo bastante fiel en cuanto a comportamiento a la original de Borland®. Sobre todo en funciones de ventanas, lecturas sin eco en pantalla, y en funciones como "kbhit", que o bien no se emulan, o se hace de forma incompleta.
Por supuesto, no todas las funciones y macros se han emulado, hay algunas con las que no es posible hacerlo, concretamente las que relacionadas con entrada y salida de puertos: "inp", "inport", "inportb", "inpw", "outp", "outport", "outportb" y "outpw"; ya que estas macros colisionan con el control del hardware de Windows.
Además de estas macros, la única función que no se emula es "cscanf", debido a las dificultades que entraña su implementación. En futuras versiones intentaremos incluirla. En su lugar se usa "scanf" directamente.
Al contrario que sucede con los compiladores de Borland®, en el que la biblioteca está incluída en el compilador, cuando se trabaja con otros compiladores es necesario incluir el código objeto en la fase de enlazado o bien el fichero fuente conio.c como parte del proyecto. También se puede crear una biblioteca estática (ver creación de bibliotecas estáticas), que es lo que haremos en este artículo.
Esto es algo más engorroso que cuando se usa desde un compilador de Borland®, pero no debemos olvidar que no se trata de una biblioteca estándar, cosa que a menudo se olvida o pasa desapercibida para los que están acostumbrados a usarla.
En la sección de bibliotecas de Borland® se incluye una referencia de las funciones, macros y estructuras definidas en conio.
Como recordatorio, he incluido el texto de ayuda de Borland® para cada una de las funciones emuladas dentro del propio fichero fuente.
Errores en conio.h
Por supuesto, es posible que algunas de las funciones tengan errores, o que su comportamiento no sea exactamente el esperado. Del mismo modo, si tu mismo decides modificar, mejorar o corregir alguna función, con gusto incluiremos tus modificaciones en futuras versiones, por supuesto, indicando tu autoría dentro del propio fichero fuente tanto como en este documento.
Ficheros incluidos
Se suministran tres proyectos "dev", cada uno orientado a una forma diferente de usar la biblioteca.
El primer proyecto se llama "conio-lib", y
...