如何获得&l-ls -l $ pwd'使用execlp工作?

时间:2018-02-03 19:09:13

标签: c linux exec

我已经从@nos读到了关于如何实现execlp命令的以下答案,但是我无法使用execlp专门为ls -l $pwd运行相同的操作。我试过了两个 execlp("ls","ls", "-l", "$pwd", (char *)NULL);execlp("ls","ls", "-l", "pwd", (char *)NULL);但似乎没有任何效果。这个思考过程中的任何方向都会非常有用

感谢。

1 个答案:

答案 0 :(得分:1)

那些$...变量属于shell不属于操作系统内部。在shell中键入这些变量时,shell会将它们转换为实际值,然后调用系统调用。

在C程序中,您需要自己完成:

#include <unistd.h>

int main() {
    char *cwd = getcwd(NULL, 0);
    execlp("ls","ls", "-l", cwd, (char *)NULL);
}

getcwd()将为您提供当前目录。