Para compilar correr el comando:
make
Una vez compilado, se pueden ejecutar los siguientes programas:
./ps
./find [-i] <phrase>
./ls
./cp <source file> <destination file>
./timeout <max duration in seconds> <command> <command argument>
Para eliminar los ejecutables correr el comando:
make clean
Para formatear el código fuente:
make format
También se ofrece ejecución contenerizada con Docker, donde se pueden ejecutar los siguientes comandos:
Para crear el container ejecutar:
make docker-build
Para ejecutar una shell dentro de Docker, lista para compilar y ejecutar los challenges (como se describió anteriormente):
make docker-run
Muestra información básica de los procesos que están corriendo en el sistema. Equivale al comando:
ps -eo pid,comm
La implementación muestra el pid y comando (i.e. argv) de cada proceso.
Invocado como ./find xyz
, el programa buscará y mostrará por pantalla todos los archivos del directorio actual (y subdirectorios) cuyo nombre contenga (o sea igual a) xyz. Si se invoca como ./find -i xyz
, se realizará la misma búsqueda, pero sin distinguir entre mayúsculas y minúsculas.
Información del output:
<filetype> <permissions> <owner id> <owner name> <filename> [link destination]
Donde filetype toma los valores:
d
: si es un directoriol
: si es un link-
: si es un archivo
Los permisos tienen la forma estándar:
<read perm user><write perm user><execute perm user> <read perm group><write perm group><execute perm group> <read perm others><write perm others><execute perm others>
Donde si el permiso correspondiente no está presente el caracter mostrado es: -
.
El [link destination]
se muestra sólo en el caso de las entidades que son links.
Copia un archivo, denominado archivo fuente, en una ubicación con nombre especificado, archivo denominado cono destino.
Realiza una ejecución de un segundo proceso, y espera una cantidad de tiempo prefijada. Si se excede ese tiempo y el proceso sigue en ejecución, lo termina enviándole SIGTERM. Si el proceso termina antes, el programa finaliza.
En la invocación <command argument>
se refiere a un argumento que será pasado al proceso a monitorear <command>
. Se ofrece como ejemplo un programa infloop
que cicla de manera indefinida imprimiendo un mensaje por pantalla cada cierto tiempo. Para probar timeout, también de podría ejecutar algo como: ./timeout 3 ping google.com
.