Práctica 14

Anuncio
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
Descargar