Comment appeler execl() en C avec les arguments appropriés?

j'ai vlc (programme de reproduire des vidéos)
si je tape dans un shell:

/home/vlc "/home/mes films/le film que je veux voir.mkv"

il ouvre une reproduit le film.

cependant, lorsque je lance le programme suivant:

#include <unistd.h>

int main(void) {

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

  return 0;
}

vlc s'ouvre mais n'a pas de reproduire quoi que ce soit. Comment puis-je résoudre ce problème?

Choses que j'ai essayé:

J'ai deviné

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

était équivalent à taper dans le shell:

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

qui ne fonctionne pas, donc j'ai essayé

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

et vlc s'ouvre mais ne pas les reproduire.

Au lieu d'écrire la valeur NULL à la fin, j'ai essayé de 0, (char*) 0, 1 .... pas utile.
À l'aide!!!!

Pourquoi ne pas vous regardez errno après l'échec de l'execl? Il aurait dû vous apprendre plus au sujet de votre problème. Ce qui est devenu de la lecture de la page de man pour execl soigneusement? 🙂

OriginalL'auteur Matias Morant | 2012-09-26