Archivo binario

Archivo binario
Información sobre la plantilla
Archivo binario.jpg
Concepto:Un fichero binario (archivo binario), contrariamente a un fichero ASCII, contiene más que simplemente texto. Puede contener fotos, sonido, hojas de cálculo, o documentos concebidos para el procesamiento de texto. Los ficheros binarios están formados de unos y ceros.

Archivo binario. Es un archivo informático que contiene información de cualquier tipo codificada en binario para el propósito de almacenamiento y procesamiento en ordenadores. Por ejemplo los archivos informáticos que almacenan texto formateado o fotografías, así como los archivos ejecutables que contienen programas.

Muchos formatos binarios contienen partes que pueden ser interpretadas como texto. Un archivo binario que sólo contiene información de tipo textual sin información sobre el formato del mismo se dice que es un archivo de texto plano. Habitualmente se contraponen los términos 'archivo binario' y 'archivo de texto', de forma que los primeros no contienen solamente texto.

Origen etimológico

En concreto, podemos especificar un poco más el origen etimológico de la palabra binario exponiendo que la misma se compone de dos partes latinas claramente diferenciadas: el vocablo bini que equivale a “de dos en dos” y el sufijo –ario que puede traducirse como “relativo a”. El archivo binario, por lo tanto, es el documento digital cuyos datos están codificados en código binario para que puedan ser procesados por una computadora. Un video digital, una fotografía o el archivo ejecutable que contiene un software son archivos binarios.

Y todo ello sin olvidar que además nos encontramos con lo que se da en llamar árbol binario. Este término se emplea en el campo de la computación para definir a aquella estructura de datos en la que cualquiera de los nodos o elementos que lo componen suelen tener a su vez dos “hijos” aunque también pueden existir los que no tengan ninguno.

Características

Un archivo binario, es un archivo cuyo contenido usa exactamente la misma representación que utiliza el computador internamente para representar la información. El contenido de un archivo binario no está pensado para ser entendible por humanos. Si es abierto con el Bloc de Notas, generalmente se verá sólo símbolos ininteligibles. Internamente, muchos computadores representan los números enteros usando cuatro bytes. Cada byte está formado por ocho bits (unos o ceros). Las diferentes combinaciones de los treinta y dos bits permiten representar 232 números diferentes.

El sistema binario es aquel que numera empleando sólo ceros (0) y unos (1). Esto quiere decir que, en el marco de estos sistemas, cualquier cifra puede expresarse a partir de estos números. Este sistema es utilizado por las computadoras u ordenadores, que funcionan con un par de voltajes diferentes y que atribuyen el 0 al apagado y el 1 al encendido.

Formatos de archivos binarios

Habitualmente se piensa en los archivos binarios como una secuencia de bytes, que es lo que implica que dígitos binarios (bits) se agrupen de ocho en ocho comúnmente. Los archivos binarios que contienen bytes suelen ser interpretados como alguna cosa que no sean caracteres de texto. Un ejemplo típico son los programas de ordenador compilados; de hecho, las aplicaciones o programas compilados son conocidos como binarios, especialmente entre los programadores. Pero un archivo binario puede almacenar imágenes, sonido, versiones comprimidas de otros archivos, etc. — en pocas palabras, cualquier tipo de información. Algunos archivos binarios tienen una cabecera. Esta cabecera es un bloque de metadatos que un programa informático usará para interpretar correctamente la información contenida. Por ejemplo, un archivo GIF puede consistir en múltiples imágenes y la cabecera se usa para identificar y describir cada bloque de datos de cada imagen. Si el archivo binario no tiene cabecera se dice que es un archivo binario plano.

Lectura y Escritura de Archivo Binarios

Las funciones de lectura y escritura ya no son las mismas que para los archivos de texto. Mientras que fscanf y fprintf realizan una conversión del tipo de dato a cadena de caracteres, en los archivo binarios esto es innecesario. Por este motivo hay que utilizar otras funciones. La función utilizada para leer datos de un archivo binario es fread y la función utilizada para escribir datos en un archivo binario es fwrite. Estas funciones son independientes del tipo de dato que se lea o escriba, es decir, no realizan ninguna interpretación del tipo de dato. La especificación de las funciones fread y fwrite es la siguiente:

size_t  fread(void *p, size_t size, size_t n, FILE *pf)
size_t  fwrite(void *p, size_t size, size_t n, FILE *pf)

Para fread

  • El puntero p apunta a la variable en la cual se almacenarán los datos leídos del archivo binario.
  • El argumento size contiene el número de bytes que componen cada uno de los elementos que van a ser leídos.
  • El argumento n contiene el número de elementos de tamaño size que han de leerse.
  • l cuarto argumento es el puntero o descriptor de fichero que devuelve la función fopen.

Para fwrite

  • El puntero p apunta a la variable en la cual se encuentran los datos que se escribirán en el fichero.
  • El argumento size contiene el número de bytes que componen cada uno de los elementos que van a ser escritos en el archivo binario.
  • El argumento n contiene el número de elementos de tamaño size que se van a escribir.
  • El cuarto argumento es el puntero o descriptor de fichero que devuelve la función fopen.

El tipo de dato size_t está definido en el fichero <stdio.h>. Su definición es la siguiente:typedef unsigned size_t. El tipo size_t no es más que un entero sin signo; la razón de utilizar este tipo de dato y no la de unsigned directamente no es otra que la de distinguir el tipo de dato cuando se utiliza en la lectura o escritura dc archivos binarios. Ambas funciones devuelven el número de ítems leídos o escritos, 0 en caso de que no se haya leído o escrito ninguno. Es posible almacenar varios datos en disco a la vez y no necesariamente uno a uno.

Fuentes