Abrir directorio usando C

Estoy aceptando la ruta a través de la entrada de línea de comando.

Cuando lo hago

dir=opendir(args[1]);

no entra en el bucle ... es decirdir==null...

¿Cómo paso la entrada de la línea de comando al puntero dir?

void main(int c,char **args)
{
    DIR *dir;
    struct dirent *dent;
    char buffer[50];
    strcpy(buffer, args[1]);
    dir = opendir(buffer);   //this part
    if(dir!=NULL)
    {
        while((dent=readdir(dir))!=NULL)
            printf(dent->d_name);
    }
    close(dir);
}

./a.out  /root/TEST is used to run the program..
./a.out --> to execute the program
/root/TEST --> input by the user i.e valid path

Respuestas a la pregunta(4)

Su respuesta a la pregunta