![无法使用 setenv() 更改环境变量](https://linux22.com/image/657700/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20setenv()%20%E6%9B%B4%E6%94%B9%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F.png)
我有一台成员服务器,该服务器带有带活动目录的 Windows PDC。安全性=ads。
我正在尝试使用 C 设置环境变量(凭据缓存):
setenv("CCACHE","缓存名称",1);
但是,当我执行 getenv("CCACHE") 时,它仍然显示变量的旧值。有人能帮我解决这个问题吗?
编辑:我基本上是想为 kerberos 身份验证设置 ccache。调用 fn const char * krb5_cc_default_name(krb5_context context) 仍会返回缓存的旧值。
According to MIT kerberos documentation,
默认凭据缓存名称在调用此函数之间的上下文中缓存,因此如果在第一次调用此函数后 KRB5CCNAME 的值在进程环境中发生变化,则该变化不会反映在具有相同上下文的后续调用中。调用者可以使用 NULL 值的名称调用 krb5_cc_set_default_name() 来清除缓存值并强制重新计算默认名称。
我已尝试过但它仍然返回旧值。