Sie sind auf Seite 1von 4

Laboratorio III GUIA DE EJERCICIOS PRACTICOS

PRACTICA 1. DIRECTORIOS
1. Escribir un programa llamado ida (imprimir directorio actual) que emule el funcionamiento del comando pwd. Ejemplo: $ ida /home/lab3/bin 2. Escribir un programa cdir (cambiar de directorio) que emule el funcionamiento del comando cd. El programa debe tomar el nombre del directorio destino de la linea de comandos. En caso de que no se especifique debe moverse al home directory. Adicionalmente luego de moverse de directorio el programa debe imprimir en pantalla el directorio actual Ejemplo: $ cdir /tmp /tmp 3. Escribir un programa llamado admdir (administrador de directorios) encargado de administrar la creacin y borrado de directorios. Debe soportar como argumento de la lnea de comandos las opciones -creardir y -borrardir y el nombre del directorio a crear o borrar. Sintaxis: admdir [-creardir | -borrardir] directorio Ejemplo: $ admdir creardir /home/lab3/dir01 4. Escribir el programa ldir tal que emule el funcionamiento del comando ls. Se deben implementar las opciones -l, -i y -a. Ejemplo: $ ls lia /home 5. Modificar el programa anterior de tal manera que soporte la opcin R. Ejemplo: $ ls lR /home

PRACTICA 2. ARCHIVOS
1. Escribir un programa llamado imprimir que muestre por su salida estndar el contenido del archivo pasado como argumento en la lnea de comandos. En caso de que no se especifique ningn argumento debe tomar como archivo de entrada la entrada estndar . Ejemplo: $ imprimir /etc/passwd 2. Escribir un programa llamado copiar (copiar archivos) que emule el funcionamiento del comando cp. No es necesario incluir como parte de la funcionalidad la copia a directorios. Ejemplo: $ copiar origen destino

3. Escribir el programa plineas (primeras lneas) que emule el funcionamiento del comando head. Ejemplo: $ plineas -33 /etc/passwd

4. Escribir un programa destatus (desplegar estatus) que emule el funcionamiento del comando stat. Ejemplo: $ destatus lab3/destatus.c 5. Escribir un programa cpropietario (cambiar propietario) que emule el funcionamiento del comando chown Ejemplo: $ cpropietario root lab3.txt 6. Escribir un programa llamado cpermisos (cambiar permisos) que emule el funcionamiento bsico del comando chmod. Sintaxis: cpermisos <permisos> <archivo> Ejemplo: $ cpermisos 0750 /home/lab3/archivo.txt 7. Modificar el programa cpermisos para soportar la opcin R. 8. Escribir un programa llamado chgtime que cree el archivo especificado como parametro y establezca sus valores de atime y mtime a Septiembre 8, 2001. Eemplo: $ chgtime /home/lab3/ej8.txt 9. (Opcional) Escribir un programa llamado chgtime2 que cree el archivo especificado como parmetro y establezca sus valores de atime y mtime a la fecha especificada en la lnea de comandos. Ejemplo: $ chgtime2 /home/lab3/ej2.txt 21 03 2012

PRACTICA 3. PROCESOS
El objetivo de esta prctica es desarrollar un intrprete de lnea de comandos bsico llamado mic (mi intrprete de comandos) que emule de manera muy elemental el funcionamiento del bash. mic debe brindar la siguiente funcionalidad: 1. Desplegar como prompt el nombre del usuario conectado y el directorio actual. Ejemplo: [root][/home/lab3] 2. Incluir como comandos internos a los comandos pwd y cd. 3. Permitir el manejo de variables de entorno: agregado, borrado y exportacin de variables. Implementar el comando echo como comando interno. 4. Permitir la ejecucin de cualquier archivo binario ejecutable en modalidad foreground. 5. Implementar la ejecucin de comandos background ( & ) 6. Implementar el comando matar emulando la funcionalidad del comando kill. 7. Implementar la funcionalidad de pipes ( | ) 8. (Opcional) Implementar el comando nohup

Nota: Se recomienda implementar y probar las distintas funcionalidades de manera incremental

PRACTICA 4. THREADS
1. Escribir un programa llamado sumvec que sume dos vectores y despliegue el resultado por pantalla. Los datos de los vectores y su tamao pueden definirse como constantes dentro del programa. 2. Escribir un programa llamado mulvec que multiplique dos vectores y despliegue el resultado por pantalla. Los datos de los vectores y su dimensin pueden definirse como constantes dentro del programa 3. Escribir un programa llamado mulmat que multiplique dos matrices y despliegue el resultado por pantalla. Los datos de las matrices y sus dimensiones pueden definirse como constantes dentro del programa 4. Escribir un programa llamado enigmachine que cifre un archivo de texto de no ms de 20 lneas con un mximo de 80 caracteres cada una. Cada lnea debe ser cifrada en paralelo mediante el uso de mltiples hilos de ejecucin. El algoritmo de cifrado a utilizar ser provisto en clase. El mismo emula al funcionamiento de la mquina Enigma usada por los alemanes durante la 2da guerra mundial.

Das könnte Ihnen auch gefallen