Оказывается, что glibc gethostbyname_r автоматически не перезагрузит, это - конфигурация если это изменения конфигурации. Необходимо вручную назвать res_init. См. отчет об ошибках ниже.
Примечание: Ни страница справочника для gethostbyname_r, ни для rer_init не упомянула это ограничение.
Мое решение очень конкретно. Это работает на наш длительный сервер, но это не мое идеальное решение.
У меня есть функция, которая проверяет mtime/etc/resolv.conf против последнего известного mtime (0 для DNE). Если два mtime отличаются затем, я называю res_init. Эта функция вызвана на запуске программы и затем периодически дополнительно перезагружать конфигурацию.
glibc отчет об ошибках
кэши libc resolv.conf навсегда
...
Это - то, для чего res_init (), назовите его.