如何使用适当的参数调用EXECL(c)中?(How to call execl() in C wit

2019-06-18 07:47发布

我有VLC(节目再现的视频),如果我在一个壳型:

/家/ VLC“/家/我的电影/电影我想see.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,(字符*)0,1 ....没有帮助的。 救命!!!!

Answer 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



Answer 2:

如果你只需要执行您的VLC播放过程中,只有当它完成给控制权交还给您的应用程序并没有什么更复杂的,那么我想你可以只使用:

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



文章来源: How to call execl() in C with the proper arguments?