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.
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 todos los ficheros en el directorio dir. 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 en el directorio dir. (igual que el caso anterior, pero además elimina el directorio de 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 cada uno los ficheros y el directorio 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á. Si se especifica dir los copiará en el directorio dir (si no existe ha de crearse), si no se suministra dir los copiará en el mismo directorio donde estaban (si no existe ha de crearse)
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á. Si se especifica dir los copiará en el directorio dir (si no existe lo crea), si no se suministra dir los copiará en el mismo directorio donde estaban (si no existe ha de crearse). Además elimina la zona de memoria compartida de clave cl. (igual que el caso anterior pero eliminando la zona de memoria compartida)
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, opendir ...)
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 3 NOVIEMBRE 2006