Sie sind auf Seite 1von 4

UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE

FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION






~ 1 de 4 ~ Ing Edwin Estremadoyro Escobar
CORRIENTES Y ARCHIVOS

En C. Los dispositivos tradicionales, terminales, unidades de disco o cinta, puertos e
impresora, son tratados como archivos.

Fundamentalmente C distingue dos tipos de corrientes
- Corriente de texto
- Corrientes binarias

Una corriente de texto es una sucesin indefinida de caracteres organizados en
lneas de diversas longitudes, informticamente hablando, en registros de longitud
indefinida.

Par distinguir el principio y final de cada lnea, C utiliza como "separador" el carcter
de nueva lnea (LF o Line Feed), ASCCI numero 10 en decimal.

Habitualmente, a este tipo de agrupacin de lneas o registros (fichero o archivo)
termina con el carcter decimal 26 (EOF de En Of File o fin de archivo).

Registro 1 LF Registro 2 LF Registro 3 LF EOF

Archivo de texto con 3 registros de longitud indefinida.

Al tratar una corriente de texto C realiza ciertas transformaciones de los caracteres
especiales ledos / escritos. As por ejemplo, un carcter puede transformarse en un
par (CR y LF) segn las conveniencias del sistema. Por tanto, puede haber, y de
hecho hay ciertas diferencias entre los caracteres ledos de un disco y los realmente
almacenados en la memoria o viceversa, cuando se trata el archivo como archivo de
texto.
En una corriente binaria las transformaciones mencionadas no se realizan, y el texto
presente en la memoria y del disco coincide unvocamente, carcter a carcter o
byte a byte.

En C, un archivo es un concepto lgico que en el momento de su apertura se asocia
o conecta (Se enablea del ingls enabled) a una corriente, y se disocia (dissable) de
sta en el momento del cierre del archivo.

Corrientes estndar

Cuando se ejecuta un programa en C abre de forma simultnea cinco corrientes
estndar asociados a dispositivos que son: - Stdin Entrada estndar de datos
(teclado)
- Stdout Salida estndar de datos (pantalla)
- Stderr Errores estndar (pantalla)
- Stdaux (Auxiliar estndar (puerto serie)
- Stdprn Impresora estndar (impresora paralelo).

UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION




~ 2 de 4 ~ Ing Edwin Estremadoyro Escobar
De esto cinco, dos de ellos, el dispositivo serie y el dispositivo de impresin paralelo,
dependen de la configuracin de la mquina, por lo tanto pueden no estar presentes.

ARCHIVOS

Un archivo es una coleccin de datos que con un ttulo o nombre se almacena o se
graba en dispositivos tales como discos, disquetes, cintas magnticas, etc. Los datos
de un archivo pueden ser ledos y utilizados por otros medios.

En C un archivo es un concepto lgico que puede ser aplicado a cualquier cosa
desde a un archivo de disco hasta un terminal. Se asocia a un flujo con un archivo
especifico realizando una operacin de apertura Una vez que el archivo est abierto,
la informacin puede ser intercambiada entre este y el programa. Todos los flujos
son iguales pero no todos los archivos lo son.

Las operaciones bsicas con un archivo son:

a) Apertura del archivo del archivo empleando un nombre para identificarlo.
b) Escritura de datos en el archivo.
c) lectura de datos del archivo.
d) Cierre del archivo.

Las otras operaciones como bsqueda, ordenacin, modificacin, agregar, borrar
datos, etc. no son propias de archivos sino que se trabajan en memoria usando
arreglos o listas enlazadas. Se recomienda no trabajar directamente en archivos.

Los datos de un archivo son simplemente bytes o caracteres almacenados uno a
continuacin del otro que son enumerados con 0,1,....

0 1 2 3 4 5 6 7..

Comienzo Apuntador apunta al componente 7

Es necesario abrir un archivo antes de proceder a hacer operaciones de escritura o
de lectura en. Cuando se abre una archivo usualmente queda listo para acceder al
componente 0, lo que suele decirse que el archivo apunta al comienzo.

Despus de cada operacin de escritura o de lectura el archivo apunta al
componente que sigue al grupo de datos escritos o ledos: desplazamiento
secuencia.

Debe tenerse presente que para cada archivo abierto el sistema siempre mantiene
un puntero al componente actual o de acceso siguiente. Tambin es posible
desplazar o ubicar el apuntador a un componente particular dentro del archivo,
empleando funciones del movimiento del puntero: Movimiento directo.

Se debe cerrar un archivo cuando ya no se desee trabajar.

UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION




~ 3 de 4 ~ Ing Edwin Estremadoyro Escobar
Se dispone de dos sistemas de funciones para operar un archivo: a)
Funciones de entrada y salida de alto nivel (archivos lgicos).
b) Funciones de entrada y salida de bajo nivel (al modo del sistema operativo UNIX).

En el primer caso el sistema provee un rea de almacenamiento intermedio (buffer)
que sirve para almacenar temporalmente los datos escritos o ledos en el archivo.
Este sistema permite un control mayor sobre el flujo de los datos y se facilita la
conversin de los mismos.

En cambio con las funciones de bajo nivel, cuyo empleo es ms simple, las
operaciones de lectura y escritura se realizan directamente y el control de los datos
queda a cargo del usuario.

FUNCIONES ORIGINALES DEL LENGUAJE C DE ALTO NIVEL PARA EL
MANEJO DE ARCHIVOS

Este grupo de funciones se encuentran en la librera estndar de entrada y salida de
C original (inadecuadas para la programacin a objetos) y pueden ser accedidas
incluyendo el archivo de cabecera stdio.h con #include <stdio.h>

Para usar estas funciones se debe declarar una variable puntero del tipo predefinido
FILE en la forma:
FILE *arch; En donde arch es un nombre o identificador.

Apertura de un archivo
Se abre un archivo usando la funcin fopen(), que toma valores a puntero de tipo
FILE , en la forma:

1.- FILE *fopen(nombre_del_Archivo, modo)

En donde modo puede ser ( algunos casos)
Modo Significado
=====================================
"r" Abre un archivo de texto para lectura
"w" Abre un archivo de texto para escritura
"a" Abre un archivo de texto para aadir.
"rb" Abre un archivo binario para lectura
"r+" Abre un archivo de texto para lectura/escritura
================================================
Si la operacin es correcta a partir de este instante el archivo queda referido por el
puntero arch hasta el momento en que se cierra con:

2. fclose(arch).- actualiza el archivo (y su directorio) y finaliza el vnculo con la
variable arch.

Escritura de archivos

Para escribir un archivo abierto en los modos "w" o "a" se pueden utilizar las
funciones:
UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION




~ 4 de 4 ~ Ing Edwin Estremadoyro Escobar

3.- int fprintf(FILE *arch, const char *format[, argument, ...]);
Igual que en printf escribe datos con formato, pero la salida se hace en arch.

4.- int fputc(const char *s, FILE *arch); Escribe un carcter c en arch.

5.- int fputs(int c, FILE * arch);
Escribe una cadena (o puntero a cadena) en arch hasta encontrar su final ('\0').

6.- size_t fwrite(const void *ptr, size_t size, size_t n, FILE *arch);
Escribe en arch n datos de tamao o longitud m (igual a m*n bytes) ubicados a
partir de la direccin s.

Lectura de archivos

7- int fscanf(FILE *arch, const char *format[, direccion, ...]);
Igual que scanf pero la lectura se hace en arch o (desde arch).

8.- int fgetc(FILE *arch); Devuelve el siguiente carcter ledo en arch.

9.- char *fgets(char *s, int n, FILE *arch);
Lee una cadena de caracteres, hasta un mximo de n-1 caracteres o hasta
encontrar un cambio de lnea ('\n'), del archivo arch y los almacena en la
direccin . Aade al final el carcter nulo ('\0').

10.- size_t fread(void *ptr, size_t size, size_t n, FILE *arch);
Lee en arch n datos de tamao o longitud m (igual a m*n bytes) y los almacena a
partir de la direccin s.

VALORES DE LAS FUNCIONES

Las constantes EOF y NULL (se declaran en el archivo de cabecera stdio.h y son
iguales a -1 y 0 (cero), respectivamente, si utilizan para comprobar si estas funciones
se ejecutan correctamente.

Gestin de la impresora en C (modo 16 bist)

El siguiente ejemplo muestra la manera de desviar la salida de datos hacia su
impresora asimilando esta un archivo con el nombre reservado de PRN. Algunas
impresoras retienen un buffer de memoria los ltimos caracteres recibidos sin
imprimirlos.

Das könnte Ihnen auch gefallen