Manejo De Archivos A Bajo Nivel En C

Páginas: 10 (2323 palabras) Publicado: 12 de marzo de 2013
CAPÍTULO 5 MANEJO DE ARCHIVOS

Actualmente existen dos formas para manejar los archivos en lenguaje C, uno llamado de primer nivel (también llamado secuencial) y otro llamado de segundo nivel (también llamado tipo registro o de alto nivel). En el estándar UNIX tradicional, se diseño un sistema de archivos con buffer para operar sobre archivos textos y un sistema de archivos sin buffer paraoperar sobre archivos binarios. Finalmente el comité ANSI decidió que no había razón para que existiesen dos sistemas separados para el manejo de archivos por lo que el sistema de archivos sin buffer no forma parte del estándar propuesto. En la actualidad un gran número de compiladores soporta la operaciones de bajo nivel. En el nivel más bajo se considera el archivo como un conjunto de bytescontinuos, esto sin tener en cuenta como se han grabado, un usuario puede leer la cantidad de bytes que desee no importando la posición en la cual se encuentren éstos. En el modo de más alto nivel se puede acceder a uno o varios registros, es decir, lo que se lee cada vez es una agrupación lógica. Las operaciones de primer nivel, como se las llama a las de nivel más bajo, son las más potentes. Se dice queestas operaciones son las primitivas del sistema: son las operaciones básicas. Las de segundo nivel se construyen a partir de éstas.

5.1. INSTRUCCIONES A BAJO NIVEL La siguiente tabla muestra las instrucciones de primer nivel para manejo de archivos. Todas estas funciones se encuentran definidas en el archivo io.h. Función
read() write() open() close() lseek() unlink()

Descripción Lee unbuffer de datos Escribe un buffer de datos Abre un archivo en disco Cierra un archivo Busca un byte especificado Elimina un archivo del directorio

Tabla 5.1. Funciones para manejo de archivo en bajo nivel.

Apertura de archivo
int open(char *nomfich,int modo) /* devuelve un numero de archivo */

Si la operación ha resultado sin fallas, open devuelve el número que ha adjudicado al archivoque acaba de abrir. Devuelve un -1 en el caso de que se produzca un error. Para esta función el modo puede tener los siguientes valores:

44

Preparado por Juan Ignacio Huircán

Modo
0x01 0x02 0x04

Efecto Sólo Lectura Sólo Escritura Lectura/Escritura
O_RDONLY O_WRONLY O_RDWR

Tabla 5.2. Modos de acceso de archivo.

Sin embargo, si el archivo no existe, se producirá un error. Paraespecificar el modo se debe recurrir entonces a otras configuraciones de bits. Definidas en fcntl.h, los principales son los siguientes: Modo O_APPEND O_CREAT O_TRUNC O_TEXT O_BINARY (0x0800) (0x0100) (0x0200) (0x4000) (0x8000) Descripción Escritura al final del archivo Creación si el fichero no existe Vacía un archivo que ya existe Considera loa archivo como texto. Considera los archivos comobinarios, no existen caracteres especiales.
Tabla 5.3. Modos de apertura de archivo.

Cuando se vaya a crear un archivo debe especificarse un tercer argumento. Este tercer argumento indica el modo de protección, los cuales están definidos en sys\stat.h Modo de protección
S_IWRITE S_IREAD S_IREAD | S_IWRITE

Descripción Sin protección contra escritura. Sin protección contra lectura. Lectura yescritura autorizada.

Tabla 5.4. Modos de protección.

Ej 5.1. Abriendo un archivo
#include #include void main() { int f, modo=0x01; if( (f= open("Nombre1", modo))==-1) { printf("NO se puede abrir ! "); } }

Para este ejemplo el archivo NOMBRE1 debe existir. Si NO existe la función open devuelve -1.

Apuntes de Herramientas de Programación

45

Ej 5.2. Abriendo un archivo que noexiste.
#include #include #include void main() { int f, modo=0x04; /* Se puede usar O_RDWR en vez de modo */ if( (f= open("Nombre1", modo|O_CREAT))==-1) { printf("NO se puede abrir ! "); } else printf(" Archivo Abierto !"); }

Para este ejemplo si el archivo NO existe lo crea. El acceso será de lectura-escritura. Todo lo que escriba en el archivo borrará la información existente. Si el modo es...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Manejo Archivo De Lenguaje C
  • manejo archivos c#
  • Manejo De Archivos En C# (Con Codigos Ejemplo)
  • 4 ESTRATEGIAS PARA EL MANEJO Y BAJAR EL NIVEL DE LOS INVENTARIOS
  • Programa Que Maneja Estructuras De Organizaci N De Archivos En C
  • Bajar archivos con c#
  • Manejo archivos c++
  • Manejo de archivo en c++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS