The manual states: "In the standard ‘C’ locale, both grouping and mon_grouping have a value of "". This value specifies no grouping at all." However, the value is -1/CHAR_MAX https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/locales/C;h=fc0614e551519c6b162379bf672b428dba21c12a;hb=refs/heads/master#l73 Not a big deal, but when trying to understand how it actually works, I stumbled upon this. Also, it is not mentioned earlier that an empty string should give this behavior, rather it says that when finding a string termination character, it should use the previous char. Location of the incorrect statement: https://sourceware.org/git/?p=glibc.git;a=blob;f=manual/locale.texi;h=f6afa5dc44a2a016df5c529dc8d2491b689f4b37;hb=HEAD#l702
There are two different representations of the same value: - the locale source file uses (mon_)grouping -1 - the localeconv function sets the (mon_)grouping members to "" See 7.3.3 LC_MONETARY and 7.3.4 LC_NUMERIC in the POSIX.1 standard.