¿Cómo enumerar directorios de primer nivel solo en C?

En una terminal puedo llamar als -d */. Ahora quiero unac programa para hacer eso por mí, así:

#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;
}

Esta voluntadls -l todo. Sin embargo, cuando estoy intentando:

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

Obtendré un error de tiempo de ejecución:

ls: * /: No existe tal archivo o directorio