Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用execlp使“ls-l$pwd”工作?_C_Linux_Exec - Fatal编程技术网

如何使用execlp使“ls-l$pwd”工作?

如何使用execlp使“ls-l$pwd”工作?,c,linux,exec,C,Linux,Exec,我已经阅读了以下关于如何实现execlp命令的答案,但是我无法使用execlp专门为ls-l$pwd运行相同的命令。我两者都试过了 execlpls,ls,-l,$pwd,char*NULL;和 execlpls,ls,-l,pwd,char*NULL;但似乎什么都不管用。这个思考过程中的任何方向都会非常有帮助 谢谢。那些美元。。。变量属于shell,而不是操作系统内部。在shell中键入这些变量时,shell会将它们转换为实际值,然后调用系统调用 在C程序中,您需要自己完成: #include

我已经阅读了以下关于如何实现execlp命令的答案,但是我无法使用execlp专门为ls-l$pwd运行相同的命令。我两者都试过了 execlpls,ls,-l,$pwd,char*NULL;和 execlpls,ls,-l,pwd,char*NULL;但似乎什么都不管用。这个思考过程中的任何方向都会非常有帮助

谢谢。

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

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

#include <unistd.h>

int main() {
    char *cwd = getcwd(NULL, 0);
    execlp("ls","ls", "-l", cwd, (char *)NULL);
}
将为您提供当前目录。

如果要在C程序中使用环境变量,需要调用getenv。