Llamadas al sistema de ficheros

Solo disponible en BuenasTareas
  • Páginas : 17 (4044 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de noviembre de 2011
Leer documento completo
Vista previa del texto
SISTEMAS OPERATIVOS
Práctica 1. Llamadas al sistema de ficheros

Autores

NIA

Correo

Jonathan Muñoz Martin 100275711 100275711@alumnos.uc3m.es Alfredo Ruiz Hernández 100275179 100275179@alumnos.uc3m.es

1

Índice

Páginas 1. Programas resuelto ……………………………………….………………… 3 1.1 printFile………………………………………….………........…… 3 1.2 statistics………………………………………….……........……… 5 1.3 split......……………….………………………….…….........…….. 7 1.4 filter….......…………………………………………..…........…….. 9 1.5 combine……………………………………………........…………11

2. Problemas o dificultades……………………………………………………. 13

3. Conclusión…………………………………………………………….…….. 14

2

1. Programas resuelto
Comenzaremos explicando cómo hemos resuelto los problemas de la práctica y describiremos nuestro código fuente para un mayor entendimiento delmismo. En esta práctica, entre otras cosas, se nos pide almacenar una información de forma permanente, por lo que utilizaremos ficheros, y que hagamos una serie de operaciones para aprender y comprender este sistema. Algunos ejemplos son: mostrar información de un fichero, obtener una estadistica, jugar con el posicionamiento de un fichero, etc. Veamos detenidamente cada uno de los programas harealizar: 1.1) PRINTFILE El programa “printfile.c” nos permite imprimir por pantalla un archivo binario, de esta forma podremos ver la informacion de las personas que hay almacenadas y de forma legible por cualquier persona (ya que es un archivo binario y se muestra en formato texto). Debemos incluir en todos los programas las librerías necesarias para poder utilizar funciones ya existentes, sinono podremos utilizar dichas funciones. Seguidamente, declaramos una variable de tipo entero que será el descriptor del fichero del cual queremos leer. También, tenemos que crear una estructura de datos para poder almacenar las personas y sus caracteristicas, la cual ha sido previamente declarada en el archivo "personas.h" (libreria que debemos incluir). Antes de realizar alguna operación hay quecomprobar que se pasan bien los argumentos en la llamada al programa (tiene que verificar que son 2), sino salta un error que nos informa que están mal introducidos y saldrá del programa. Este código es común en todos los programas de la práctica porque obligatoriamente tenemos que pasarle los parámetros cuando hacemos la llamada. A continuación, se abre el fichero binario. Para abrir el ficherobinario utilizamos la función “open”, pasándole un puntero a una cadena de caracteres que representa el nombre de fichero (captada por "argv[1]"), y el tipo de apertura que queremos realizar, en este caso solo queremos leerlo (O_RDONLY). Después de la apertura necesitamos verificar que se ha abierto correctamente, porque si no existe el fichero que intenta abrir dará un error. Una vez realizada laapertura del fichero, nos disponemos a leer y a imprimir. Para realizar esto es necesario ir controlando el número de bytes leídos para ver que el proceso se realiza correctamente, ya que seguirá leyendo hasta que sea final de fichero. Para poder ir leyendo e imprimiendo necesitaremos las funciones “read” (lee la estructura del fichero binario y la guarda en la estructura que nos hemos creado "p1")y “printf” (muestra en pantalla la información del fichero que previamente se ha guardado en la estructura persona "p1" con la función "read") e ir comprobando que se va haciendo bien, sino es así, mandaremos un error. Realizada la función de impresión con éxito, deberemos cerrar los ficheros para evitar una perdida de datos si se produce un error. Y como es habitual, devolveremos un “0” una veztermine el programa, para saber que se ha realizado correctamente el programa.

3

El resultado ha sido la muestra por pantalla de la información de las personas contenida en el fichero de prueba "persona.per", alojada en la carpeta "sample" que se nos aportó con el enunciado de la práctica. Dicho resultado lo hemos comparado con el fichero "salidaPantallaPrintFile.txt" que se nos...
tracking img