Práctica 1: Introducción a las llamadas del sistema

Práctica Obligatoria
Sistemas Operativos I
ETIX, curso 2007-2008

 
Introducción | funciones | normas y entrega (plazo de entrega 11/12/07)

Introducción

La práctica consiste en realizar un programa en lenguaje C al que llamaremos lista y que debe servir para mostrar información sobre ficheros o directorios de un modo similar (aunque mucho más limitado) a como lo hace el comando ls. El programa funcionará con las siguientes opciones:

$ lista [-f <formato>] [-s <criterio>] [<nombre>]

donde todos los parámetros son opcionales, y <nombre> hace referencia a un nombre de fichero o de directorio. Si el parámetro <nombre> no se proporciona, se sobreentiende que deseamos listar el contenido del directorio actual "." . El significado de las opciones es el siguiente

-f <formato>
Indica el formato de los datos a mostrar por cada fichero en la cadena codificada <formato>. En esa cadena se señalan qué datos se muestran y en qué orden. Para ello, se usa una letra diferente para cada dato del fichero, con el siguiente significado

n

nombre del fichero o directorio
p

permisos, en formato rwxrwxrwx
l

número de enlaces
o

nombre del propietario
g

nombre del grupo
s

tamaño
b

número de bloques
t

tipo de fichero ('-' normal, 'l' link, 'd' directorio)
a

fecha de último acceso
m

fecha de última modificación
r

si el fichero es un link, muestra el path al fichero al que apunta (usando la llamada al sistema realpath).
Si no es un link, simplemente este campo queda vacío y no se muestra nada.

Por ejemplo, los argumentos -f tpsbn indican que se desea mostrar el tipo, los permisos, el tamaño, el número de bloques y el nombre de cada entrada del directorio, mientras que con los valores -f nog mostraría solamente el nombre, el propietario y el grupo. Por defecto, si la opción -f no es invocada, equivale a usar -f btplogsanr que es la misma información que muestra el comando ls -las.
-s <criterio>
Sólo tiene efecto cuando <nombre> es un directorio. Indica que las entradas de ese directorio deben mostrarse de forma ordenada, donde <criterio> es una cadena que codifica el criterio a usar para la ordenación. Esta cadena puede contener cualquiera de las letras vistas para el parámetro -f <formato> salvo el path real r. De este modo, por ejemplo, si se usan los valores -s lan se indica que queremos ordenar ascendentemente por el número de enlaces, y en caso de tener el mismo número de enlaces, ordenar ascendentemente por la fecha de último acceso, y en caso de coincidir también en ese dato, ordenar ascendentemente por nombre. Para indicar que queremos orden descendente en alguno de los campos, usaremos la versión en mayúscula de la letra correspondiente. Así, por ejemplo, los valores -s MbN indican que queremos ordenar descendentemente por fecha de última modificación, entre los que tengan la misma fecha, ascendentemente por número de bloques, y entre los que tengan también igual número de bloques, descendentemente por nombre.

Por supuesto, ambas opciones se pueden combinar. Por ejemplo:

lista -f nps -s S dir1
indicaría que deseamos mostrar nombre permisos y tamaño de las entradas del directorio dir1, ordenándolas descendentemente por su tamaño.


Funciones a usar

Las siguientes funciones realizan llamadas al sistema que serán de utilidad:

Los permisos de directorios y ficheros deberán indicarse en el formato -rwxrwxrwx.

Normas y entrega

La práctica se realizará de forma individual o en grupos de dos personas, siendo preferible esto último. La presentación de la práctica tendrá lugar preferentemente en el laboratorio durante el horario de clase y, en el caso de los grupos, es obligatoria la presencia de los dos alumnos que lo componen.

La práctica es obligatoria y, por tanto, aprobarla es imprescindible para aprobar la asignatura.

La entrega se realizará utilizando el sistema de buzón de prácticas. La fecha límite de entrega de la práctica es el martes 11 de diciembre, quedando inhabilitado el buzón al día siguiente. Tras esta fecha, se abrirá un plazo de defensa en horario de tutorías para aquéllas prácticas en buzón que excepcionalmente no hayan sido presentadas en el laboratorio.
Última actualización: 1/11/2007