Page 345

5 Ficheros

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

· 323 Modifica el programa del ejercicio anterior para que, si hay menos l´ıneas con valores de filas que filas declaradas en la primera l´ınea, se rellene el restante n´ umero de filas con valores nulos. Aqu´ı tienes un ejemplo de fichero con menos filas que las declaradas: matriz incompleta.txt 1 2

3 4 1 0 3 4

· 324 Dise˜ na un programa que facilite la gesti´on de una biblioteca. El programa permitir´a prestar libros. De cada libro se registrar´a al menos el t´ıtulo y el autor. En cualquier instante se podr´a volcar el estado de la biblioteca a un fichero y cargarlo de ´el. Conviene que la biblioteca sea una lista de nodos, cada uno de los cuales representa un libro. Uno de los campos del libro podr´ıa ser una cadena con el nombre del prestatario. Si dicho nombre es la cadena vac´ıa, se entender´ a que el libro est´a disponible. ............................................................................................. Permisos Unix Los ficheros Unix llevan asociados unos permisos con los que es posible determinar qu´e usuarios pueden efectuar qu´e acciones sobre cada fichero. Las acciones son: leer, escribir y ejecutar (esta u ´ltima limitada a ficheros ejecutables, es decir, resultantes de una compilaci´ on o que contienen c´ odigo fuente de un lenguaje interpretado y siguen cierto convenio). Se puede fijar cada permiso para el usuario ((propietario)) del fichero, para los usuarios de su mismo grupo o para todos los usuarios del sistema. Cuando ejecutamos el comando ls con la opci´ on -l, podemos ver los permisos codificados con las letras rwx y el car´ acter -: -rw-r--r--rwxr-x---

1 usuario 1 usuario

migrupo migrupo

336 may 12 10:43 kk.c 13976 may 12 10:43 a.out

El fichero kk.c tiene permiso de lectura y escritura para el usuario (caracteres 2 a 4), de s´ olo lectura para los usuarios de su grupo (caracteres 5 a 7) y de s´ olo lectura para el resto de usuarios (caracteres 8 a 10). El fichero a.out puede ser le´ıdo, modificado y ejecutado por el usuario. Los usuarios del mismo grupo pueden leerlo y ejecutarlo, pero no modificar su contenido. El resto de usuarios no puede acceder al fichero. El comando Unix chmod permite modificar los permisos de un fichero. Una forma tradicional de hacerlo es con un n´ umero octal que codifica los permisos. Aqu´ı tienes un ejemplo de uso: 

$ chown 0700 a.out $ ls -l a.out -rwx-----1 usuario 

migrupo

13976 may 12 10:43 a.out

El valor octal 0700 (que en binario es 111000000), por ejemplo, otorga permisos de lectura, escritura y ejecuci´ on al propietario del fichero, y elimina cualquier permiso para el resto de usuarios. De cada 3 bits, el primero fija el permiso de lectura, el segundo el de escritura y el tercero el de ejecuci´ on. Los 3 primeros bits corresponden al usuario, los tres siguientes al grupo y los u ´ltimos 3 al resto. As´ı pues, 0700 equivale a -rwx------ en la notaci´ on de ls -l. Por ejemplo, para que a.out sea tambi´en legible y ejecutable por parte de cualquier miembro del grupo del propietario puedes usar el valor 0750 (que equivale a -rwxr-x---).

5.2.3.

Los ((ficheros)) de consola

Hay tres ficheros de texto predefinidos y ya abiertos cuando se inicia un programa: los ((ficheros)) de consola. En realidad, no son ficheros, sino dispositivos: stdin (entrada est´ andar): el teclado; stdout (salida est´ andar): la pantalla; Introducci´ on a la Programaci´ on con C

339

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement