У меня есть рядовой сервер с Windows PDC с активным каталогом. Безопасность = реклама.
Я пытаюсь установить переменную среды (кеш учетных данных) с помощью C:
setenv ("CCACHE", "имя_кэша", 1);
Однако, когда я делаю getenv («CCACHE»), он по-прежнему показывает старое значение переменной. Может кто-то помочь мне с этим?
EDIT: я в основном пытаюсь установить ccache для аутентификации Kerberos. Вызов fn const char * krb5_cc_default_name (krb5_context context) по-прежнему возвращает старое значение для кеша.
According to MIT kerberos documentation,
Имя кэша учетных данных по умолчанию кэшируется в контексте между вызовами этой функции, поэтому, если значение KRB5CCNAME изменится в среде процесса после первого вызова этой функции, это изменение не будет отражено в последующих вызовах с тем же контекстом. Вызывающий может вызвать krb5_cc_set_default_name () со значением NULL в имени, чтобы очистить кешированное значение и принудительно пересчитать имя по умолчанию.
Я пробовал это, но он по-прежнему возвращает старое значение.
Из другого потока: переменные среды устанавливаются в контексте вашей программы.
Когда ваша программа завершается, вы возвращаетесь в контекст, в котором была запущена ваша программа.
см. эту ветку ->. Эта ветка охватывает и другие ситуации, например другой процесс в той же программе.