Minoru> <
@fvnever> Может, лучше напишем [в POSIX] требование про потокобезопасность?
а реализовывать его как? Я вижу всего два варианта: либо setenv не удаляет старые строки (и, таким образом, память течёт), либо getenv возвращает копию, которую пользователь потом должен освободить с помощью free. Первое решение плохо тем, что если кто-то много вызывает setenv в долгоживущем процессе, то может закончиться память — и эти люди ничего с этим не смогут поделать, кроме как переписать свою программу. Второе решение плохо тем, что поведение getenv будет меняться в зависимости от реализации (в старой libc просто указатель, в новой копия).
так что я думаю, что это должен быть новый интерфейс