ENUNCIADO

Como primera práctica (que no hay que entregar), hay que realizar un programa que admita el nombre de un fichero como argumento. El programa debe cambiar el grupo al que pertenece el fichero al grupo cuyo identificador de grupo es el 666. El programa debe detectar e imprimir las codiciones de error y devolver 0 al sistema operativo si no se produjeron errores y 1 en caso contrario. Notas: en caso de que el fichero sea un enlace simbólico, debe cambiar el grupo del propio enlace, no de aquello a lo que apunta. El propietario del fichero debe permanecer inalterado.

COMENTARIOS

La práctica con 0.25 es la de Goku y Son Gohan:
#define _HPUX_SOURCE

#include <stdio.h>
#include <unistd.h>

int main(int argc,char *argv[])
{
    /* Es normal verificar que los argumentos pasados son correctos */
    if (argc != 2)
    {   /* Los errores, por el canal de errores. */
        fprintf(stderr,"\n\nUso: %s <fichero>\n\n",argv[0]);
        return 1; /* Al incluir argv[0], si cambio el nombre del programa, el mensaje sigue siendo válido. */
    }

    if (lchown(argv[1],UID_NO_CHANGE,666)==-1)
    {   /* Bastaría con el perror, pero así se sabe qué fichero falla. */
        fprintf(stderr,"\nNo se ha podido cambiar el grupo del ");
        fprintf(stderr,"grupo del fichero: %s\n\n",argv[1]);
        perror("lchown");
        return 2;
    }

    return 0; /* No olvidar el código de retorno de éxito. */
}   
Fijaros en el estilo de la práctica para las próximas que mandéis. Nada de comentarios ni código innecesario. Los comentarios en rojo son míos. Si no aparece vuestra práctica, no quiere decir que esté mal, sino que puede que llegara más tarde.

MENCIONES ESPECIALES

LPEs


© 2000 Guillermo González Talaván.