#c #linux #unix #posix #nss
#c #linux #unix #posix #nss
Вопрос:
getpwnam_r() является реентерабельным в соответствии с рядом справочных страниц. Однако стандартное только состояние
Функция getpwnam_r() потокобезопасна и возвращает значения в пользовательский буфер вместо возможного использования области статических данных, которая может быть перезаписана при каждом вызове.
Я в замешательстве. Должна ли функция модуля NSS … getpwnam_r() повторно входить? Или достаточно просто потокобезопасности?
Ответ №1:
Ну, как вы заметили, стандарт требует, чтобы функция была потокобезопасной. Это не мешает реализации предоставлять более строгую гарантию.
Итак, переносимое программное обеспечение не может предположить, что getpwnam_r является реентерабельным. Но, если вас интересует только какая-то конкретная платформа, которая гарантирует, что она реентерабельна, то, по-видимому, вы можете предположить, что.