Re: pg_check_dir comments and implementation mismatch

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pg_check_dir comments and implementation mismatch
Дата
Msg-id 23007.1424653061@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: pg_check_dir comments and implementation mismatch  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: pg_check_dir comments and implementation mismatch  (Noah Misch <noah@leadboat.com>)
Список pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Fri, Feb 20, 2015 at 12:59 AM, Noah Misch <noah@leadboat.com> wrote:
>> On Mon, Feb 02, 2015 at 03:48:33PM -0500, Robert Haas wrote:
>>> If readir() fails and closedir() succeeds, the return will be -1 but
>>> errno will be 0.

>> Out of curiosity, have you seen a closedir() implementation behave that way?
>> It would violate C99 ("The value of errno is zero at program startup, but is
>> never set to zero by any library function.") and POSIX.

> No.  Good point, I didn't think about that.  I think this way is safer, though.

While the spec forbids library functions from setting errno to zero, there
is no restriction on them changing errno in other ways despite returning
success; their exit-time value of errno is only well-defined if they fail.
So we do need to preserve errno explicitly across closedir(), or we may
report the wrong failure from readdir().
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Precedence of standard comparison operators
Следующее
От: Robert Haas
Дата:
Сообщение: Re: restrict global access to be readonly