Re: mbstowcs(3) may not return -1

看板FB_current作者時間13年前 (2012/06/22 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/6 (看更多)
On 21 June 2012 19:42, David Demelier <demelier.david@gmail.com> wrote: > On 21/06/2012 14:55, Sergey Kandaurov wrote: >> >> On 21 June 2012 16:38, David Demelier<demelier.david@gmail.com> =A0wrote= : >>> >>> Hello, >>> >>> While reading the manpage of mbstowcs I noticed an error in the RETURN >>> VALUES : >>> >>> =A0 =A0 The mbstowcs() function returns the number of wide characters >>> converted, >>> =A0 =A0 not counting any terminating null wide character, or -1 if an i= nvalid >>> =A0 =A0 multibyte character was encountered. >>> >>> Since size_t is unsigned, it can't returns -1. >> >> >> It returns (size_t)(-1). >> I don't know how is it correct, but this conforms to C spec. >> > > Mm, if I understand well, since it is cast to size_t, I think the return > value will be SIZE_MAX - 1 then, right? No, just SIZE_MAX. There is also remarkable SIZE_T_MAX. It came with 4.4BSD Lite sources under !defined(_POSIX_SOURCE). Later it was converted to be under __POSIX_VISIBLE >=3D 200112 || __XSI_VISIBLE. I hasn't found anything relative in any POSIX editions. I think this was a typo/misunderstanding. Other BSD has put this macro under its corresponding if XBSD_VISIBLE. Therefore I think SIZE_T_MAX should be avoided. --=20 wbr, pluknet _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
文章代碼(AID): #1Fus5VB2 (FB_current)
文章代碼(AID): #1Fus5VB2 (FB_current)