我有 vlc(复制视频的程序) 如果我输入一个 shell:
/home/vlc "/home/my movies/我想看的电影.mkv"
它打开并重现电影。
但是,当我运行以下程序时:
#include <unistd.h>
int main(void) {
execl("/home/vlc", "/home/my movies/the movie i want to see.mkv",NULL);
return 0;
}
vlc 打开但不重现任何内容。我该如何解决这个问题?
我尝试过的事情:
我猜的
execl("/home/vlc", "/home/my movies/the movie i want to see.mkv",NULL);
相当于在 shell 中输入:
/home/vlc /home/my movies/the movie i want to see.mkv
这行不通,所以我试过了
execl("/home/vlc", "\"/home/my movies/the movie i want to see.mkv\"",NULL);
并且 vlc 打开但也不会重现。
我没有在最后写 NULL,而是尝试了 0, (char*) 0, 1 .... 没有帮助。 帮助!!!!
最佳答案
execl("/home/vlc",
"/home/vlc", "/home/my movies/the movie i want to see.mkv",
(char*) NULL);
您需要指定所有参数,包括 argv[0]
这不是从可执行文件中获取的。
还要确保最终的 NULL
被转换为 char*
.
详情在这里:http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html
关于c - 如何使用正确的参数在 C 中调用 execl()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12596839/