CUESTIÓN
El programa que cambia el grupo de los ficheros funciona
bien. Sin embargo cuando meto:
cambia *
para que me cambie el grupo de todos los ficheros del
directorio actual, sólo me cambia el grupo de uno de
ellos.
SOLUCIÓN
Cuando se incluye un asterisco (*
) en la líneas de órdenes
de la shell, es la propia shell la que mira a ver los ficheros del
directorio actual y sustituye el asterisco por todos ellos. De esta
manera, el programa cuando toma la ejecución no ve ningún asterisco,
sino que a él le llegan el nombre de todos los programas del directorio
como si los hubiese tecleado el usuario. El programa recibiría:
cambia pepe.txt juan.txt cambia.c
por ejemplo. Y tendría el número de argumentos argv
acorde.
Incluso si lográsemos pasarle en asterisco en sí, lo que podríamos hacer
con:
cambia '*'
la llamada al sistema chown
dentro del ejecutable entendería
que queremos cambiar los permisos de un fichero cuyo nombre fuera
asterisco, no lo encontraría y fallaría.
© 2000 Guillermo González Talaván.