Como listar diretórios de primeiro nível apenas em C?

Em um terminal eu posso ligar parals -d */. Agora eu quero umc programa para fazer isso por mim, assim:

#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>

int main( void )
{
    int status;

    char *args[] = { "/bin/ls", "-l", NULL };

    if ( fork() == 0 )
        execv( args[0], args );
    else
        wait( &status ); 

    return 0;
}

Isso vails -l tudo. No entanto, quando estou tentando:

char *args[] = { "/bin/ls", "-d", "*/",  NULL };

Eu vou receber um erro de tempo de execução:

ls: * /: Esse arquivo ou diretório não existe

questionAnswers(5)

yourAnswerToTheQuestion