Abra o diretório usando C

Estou aceitando o caminho através da entrada da linha de comando.

Quando eu faço

dir=opendir(args[1]);

ele não entra no loop ...dir==null...

Como passo a entrada da linha de comando para o ponteiro 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

questionAnswers(4)

yourAnswerToTheQuestion