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.