在c中使用exec *执行二进制文件

时间:2014-01-24 12:48:29

标签: c shell exec

我正在创造一个玩具外壳。我想执行一个二进制文件,它位于PATH变量或当前目录中。这就是我要做的事情:

execl(filePath," -e ",com.arguments,NULL);  //e.g of filePath: /home/dino/programs/mywrapper

现在它适用于某些可执行文件,例如which命令。但对于像tar这样的命令,会抛出一大堆错误。

基本上我想要的是execl来执行我的shell中filePath中提到的可执行文件。我该怎么做?

修改 com.arguments是参数列表。例如,在which bash中,bash成为我的论点。在tar -zvcf bazinga.tar.gz bazinga/中,-zvcf bazinga.tar.gz bazinga/成为我的论据等。

1 个答案:

答案 0 :(得分:0)

来自execl's documentation

 The first argument, by convention, should point to the
filename associated with the file being executed.