Re: [COMMITTERS] pgsql: Add comments about why errno is set
От | Bruce Momjian |
---|---|
Тема | Re: [COMMITTERS] pgsql: Add comments about why errno is set |
Дата | |
Msg-id | 200512020249.jB22nLd10985@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: [COMMITTERS] pgsql: Add comments about why errno is set to zero. (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
OK, comments removed, and comment added to port/strtol.c. --------------------------------------------------------------------------- Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > I modified it to: > > errno = 0; /* avoid having to check the result for failure */ > > Just for the record, that's *still* wrong. It implies that if we > tested (result == LONG_MAX && errno == ERANGE), without zeroing > errno beforehand, the code would be correct. But it would not, > because the errno value could still be leftover. The plain fact > of the matter is that if you're going to check for strtol overflow at > all, you have to zero errno beforehand. This is perfectly well > explained in the strtol spec page, and I see no need to duplicate it: > > Because 0, LONG_MIN and LONG_MAX are returned on error and are > also valid returns on success, an application wishing to check > for error situations should set errno to 0, then call strtol(), > then check errno. > > regards, tom lane > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
В списке pgsql-hackers по дате отправления: