Re: [COMMITTERS] pgsql: StrNCpy -> strlcpy (not complete)
От | Bruce Momjian |
---|---|
Тема | Re: [COMMITTERS] pgsql: StrNCpy -> strlcpy (not complete) |
Дата | |
Msg-id | 200702112002.l1BK2ZD21589@momjian.us обсуждение исходный текст |
Ответ на | Re: [COMMITTERS] pgsql: StrNCpy -> strlcpy (not complete) (Peter Eisentraut <peter_e@gmx.net>) |
Список | pgsql-hackers |
Peter Eisentraut wrote: > mark@mark.mielke.cc wrote: > > I think we had this discussion already. strncpy() copies N bytes, > > whereas strlcpy() copies only as many bytes as necessary. For short > > strings with larger buffers, strlcpy() wins. It's understood that > > in many cases in PostgreSQL, the expectation is for short strings, > > and it is not required for the later bytes to be '\0'. > > You may also speculate that strncpy() is more optimized in some C > libraries than strlcpy(). However, the changed cases are all > uninteresting in terms of performance or fall under the short strings > in long buffers case. > > The remaining uses of StrNCpy() are either inner loops which need to be > investigated, or it's not clear whether the zero-filling of strncpy() > is required, or it's in a library were the libpgport linkages needs to > be added. > > The main idea here is to get this programming style out because it's > become clear that people are very confused about how to use some of the > other functions correctly. Sorry, I was confusing this with MemSet. Thanks for the clarification. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
В списке pgsql-hackers по дате отправления: