Práctica 1: Procesos en UNIX. Recursos IPC.
Realizar un programa e C que mueva ficheros entre el disco y una zona de memoria compartida cuya clave se le suministra.
El programa puede ser invocado de la siguiente manera (los parámetros entre corchetes son opcionales):
En este caso crea una zona de memoria compartida con la clave cl y copia en ella los ficheros fich1, fich2, fich3 .... Si ya existe una zona de memoria compartida de clave cl informará de ello y no hará nada
En este caso crea una zona de memoria compartida con la clave cl y mueve a ella los ficheros fich1, fich2, fich3 .... (igual que el caso anterior, pero además elimina los ficheros del disco).
El programa informa del tamaño de la zona de memoria compartida especificada por cl, asi como de los detalles (tamaño, permisos en formato rwxrwxrwx, fecha de último acceso y nombre) de los ficheros en ella contenidos.(UNA SOLA LÍNEA por cada fichero)
El programa elimina la zona de memoria compartida de clave cl.
El programa copia los ficheros de la zona de memoria compartida a disco. Si ya existen en disco informará de ello sin sobreescribirlos, a no ser que se especifique tambien -f, en cuyo caso los sobreescribirá.
El programa copia los ficheros de la zona de memoria compartida a disco. Si ya existen en disco informará de ello sin sobreescribirlos, a no ser que se especifique tambien -f, en cuyo caso los sobreescribirá. Además elimina la zona de memoria compartida de clave cl.
Información detallada de las llamadas al sistema y las funciones de la librería debe obternerse con man (stat, shmget, shmat, shmdt, shmctl, read, write ...)
En ningún caso la práctica puede producir error en tiempo de ejecución.
En caso de no poder realizar alguna de las acciones solicitadas debe informar de ello y del motivo (con perror o sys_errlist[errno]).
FORMA DE ENTREGA Va a ser utilizado el servicio de recogida de prácticas suministrado por el Centro de Cálculo de esta Facultad y parte del proceso de corrección de las prácticas va a ser automtico (compilación, listado de practicas entregadas etc) por lo cual deben entregarse exactamente como se indica a continuación:
/* AUTOR:apellido11 apellido12, nombre1:login_del_que_entrega_la_practica AUTOR:apellido21 apellido22, nombre2:login_del_que_entrega_la_practica */donde:
FECHA DE ENTREGA VIERNES 24 MARZO 2006