c exec external quotes unistd.h

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



external quotes (2)

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

/ home / vlc "/ home / my movies / la película que quiero ver.mkv"

Se abre y reproduce la película.

Sin embargo, cuando ejecuto el siguiente programa:

#include <unistd.h> 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 probé

adivine

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

era 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 tampoco se reproduce.

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


Si solo necesita ejecutar el proceso de reproducción de VLC y devolverle el control al proceso de la aplicación cuando se haya realizado y no haya nada más complejo, supongo que puede usar solo:

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


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 se toma del ejecutable.

También asegúrese de que el NULL final se convierta en char* .

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