gpt4 book ai didi

c - 如何使用正确的参数在 C 中调用 execl()?

转载 作者:太空狗 更新时间:2023-10-29 16:29:23 24 4
gpt4 key购买 nike

我有 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com