¿Cómo llamar a execl () en C con los argumentos adecuados?

Tengo vlc (progtwig para reproducir videos) si escribo en un shell:

/ home / vlc “/ home / mis películas / la película que quiero ver.mkv”

abre y reproduce la película.

Sin embargo, cuando ejecuto el siguiente progtwig:

#include  int main(void) { execl("/home/vlc", "/home/my movies/the movie i want to see.mkv",NULL); return 0; } 

vlc se abre pero no reproduce nada. ¿Como puedo resolver esto?

Cosas que intenté:

adivine

 execl("/home/vlc", "/home/my movies/the movie i want to see.mkv",NULL); 

fue equivalente a escribir en el shell:

 /home/vlc /home/my movies/the movie i want to see.mkv 

que no funciona, así que lo intenté

  execl("/home/vlc", "\"/home/my movies/the movie i want to see.mkv\"",NULL); 

y vlc se abre pero no se reproduce tampoco.

En lugar de escribir NULL al final, intenté 0, (char *) 0, 1 … no útil. ¡¡¡¡Ayuda!!!!

     execl("/home/vlc", "/home/vlc", "/home/my movies/the movie i want to see.mkv", (char*) NULL); 

    Debe especificar todos los argumentos, incluido argv[0] que no está tomado del ejecutable.

    También asegúrate de que el NULL final se convierte en char* .

    Los detalles están aquí: http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html

    Si solo necesita ejecutar su proceso de reproducción VLC y solo le devuelve el control al proceso de su aplicación cuando lo haya hecho y nada más complejo, entonces supongo que puede usar simplemente:

    system("The same thing you type into console");