INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN SISTEMAS OPERATIVOS SOLUCION A LA PRÁCTICA 14. Compartir un archivo UNIDAD 5. Sistema de Archivos OBJETIVOS PARTICULARES DE LA UNIDAD El alumno aplicará un sistema de archivo en un sistema operativo y las técnicas utilizadas para implementar su organización. OBJETIVO DE LA PRÁCTICA: Verificar que diferentes procesos ingresen información a un mismo archivo y si ésta se mantiene. 14.1 Capture, compile y ejecute el programa siguiente. Verifique que aparezca la información en el archivo de trabajo ‘prueba.txt’. Respuesta: Compile y ejecute el programa en Windows o en Unix. Ejecutelo y abra el archivo ‘prueba.txt’ para corroborar que se haya escrito en éste. 14.2 Genere varios procesos que deben registrar información en un mismo archivo. Use el programa anterior para escribir informacion diferente de cada uno de los procesos. Verifique si se consigue si el objetivo, de otra forma modifique el código para que resulte lo esperado. Anote sus observaciones en el correo reporte de sus resultados. Respuesta: Modifique el codigo del programa para que mas de un archivo pueda grabar sobre éste con el switch ‘a’. … fp=fopen("c:\\prueba.txt", "a"); fprintf(fp, "Texto a escribirse en el archivo prueba.txt...\n"); fclose(fp); ... Utilice un programa que genere al menos tres procesos hijo, cada uno debe escribir en el archivo ‘prueba.txt’, por ejemplo: /* El padre genera hasta tres hijos como parametros en línea, los hijos se generan con parámetros diferentes y se identifican autoejecutandose e identificandose por sus parametros */ /* execl() example */ #include <stdio.h> #include <process.h> 1 /2 INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN int main(int argc, char *argv[]) { int loop=(int) atoi(argv[2]); printf("%s corriendo padre...\n\n", argv[0]); while(loop--) { /* verificar para ordenes en linea */ printf("%d llamando a los hijos...\n", loop); if (loop==3) { printf("%d Hijo No:\n", loop); /* escriba en el archivo ‘prueba.txt’ */ execl(argv[0], argv[0], "3", "2", "1", NULL); exit(loop); } if (loop==2){ printf("%d Hijo No:\n", loop); /* escriba en el archivo ‘prueba.txt’ */ execl(argv[0], argv[0], "2", "1", "0", NULL); exit(loop); } if (loop==1){ printf("%d Hijo No:\n", loop); /* escriba en el archivo ‘prueba.txt’ */ execl(argv[0], argv[0], "1", "0", "-1", NULL); exit(loop); } /* exit(-1); */ } printf("%s hijo con argumentos:\n", argv[0]); for (loop = 1; loop <= argc; loop++) puts(argv[loop]); /* Despliega todos los parámetros en línea */ return 0; } Escriba sus comentarios 2 /2