gpt4 book ai didi

c - 从 C 程序执行 "echo $PATH"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:50 24 4
gpt4 key购买 nike

我正在尝试从 C 程序显示、设置和修改 PATH 环境变量。我正在做这样的事情:-

char *cmd[] = { "echo", "$PATH", (char *)0 };
if (execlp("echo", *cmd) == -1)

但我没有得到结果。

最佳答案

你应该使用 <a href="http://www.manpagez.com/man/3/getenv/" rel="noreferrer noopener nofollow">getenv</a>() , 无需通过 shell:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
printf("PATH='%s'\n", getenv("PATH"));

return EXIT_SUCCESS;
}

但是您将无法更改该值。环境变量继承到子进程中,但子进程有自己的副本。您不能从不同的程序更改 shell 的环境,无论它是用哪种语言编写的。您当然可以更改自己流程的值,但这不是您要求的。

在 shell 本身中,您可以更改其当前环境设置,但仅限于此。这就是为什么您需要使用“source”来运行改变环境的 shell 脚本的原因。

关于c - 从 C 程序执行 "echo $PATH"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1503883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com