View Issue Details

IDProjectCategoryView StatusLast Update
00019821003.1(2024)/Issue8System Interfacespublic2026-05-28 12:10
Reporteralx Assigned To 
PrioritylowSeverityEditorialTypeError
Status NewResolutionOpen 
NameAlejandro Colomar
OrganizationLinux man-pages
User Reference
Sectionmbrtowc, mbrstowcs
Page NumberI don't know
Line NumberI don't know
Interp Status
Final Accepted Text
Summary0001982: probably-unintended wording difference with ISO C in mbrtowc(3) and mbrtowcs(3)
DescriptionI'm forwarding a report I received by email from someone else.

On 2026-05-21T23:08:20+0800, Kang-Che Sung wrote:
> There's a discrepancy in the wording of the mbrtowc(3) function (and
> similarly, mbsrtowcs(3) function) between in POSIX and ISO C. It could be
> reported as an issue to POSIX (the Austin Group), and I am not sure if you
> can do that.
>
> In ISO C (I checked in both C99 and C23, in particular the N3220 draft),
> there's a statement that if mbrtowc() returns a (size_t)(-1) as an encoding
> error occurs, "the conversion state is unspecified".
>
> POSIX (see <
> https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbrtowc.html>),
> for the same part it says "the conversion state is undefined".
>
> This wording difference matters when the "unspecified behavior" and
> "undefined behavior" are technically different. An example is how the
> mbstate_t object can be reused after an invalid sequence is encountered.
> When the state is said to be "undefined" it's implied to be not usable
> again (unless it is reset, e.g., by an `mbrtowc(NULL, "", 1, ps)` call).
> When it's "unspecified" then implementations can allow the state to be
> reused for certain encodings (possible for UTF-8, for example).
>
> This is something I discovered accidentally when researching the multibyte
> functions in the C standard library and how they work with an encoding like
> UTF-8.

Reported-by: Kang-Che Sung <explorer09@gmail.com>
Desired Actionwording fix:

s/undefined/unspecified/ in the right place in RETURN VALUE.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-05-28 12:10 alx New Issue