我正在创造一个玩具外壳。我想执行一个二进制文件,它位于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/
成为我的论据等。
答案 0 :(得分:0)
The first argument, by convention, should point to the
filename associated with the file being executed.