What does C in LC_ALL=C mean?

I know very well that to override locale settings we can use LC_ALL prepended to the command one wants to run. I also know C uses default locale of a system. But what does C stand for ?


Solution 1:

C stands for the C programming language. It is a synonym for the POSIX locale.

See http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html#tag_07_02

The POSIX locale can be specified by assigning to the appropriate environment variables the values "C" or "POSIX".

Solution 2:

The only solid hint I could was from some Slackware documentation written by the great Patrick Volkerding. In the file /etc/profile.d/lang.sh he has made the following comment:

# 'C' is the old Slackware (and UNIX) default, which is 127-bit ASCII
# with a charmap setting of ANSI_X3.4-1968.  These days, it's better to
# use en_US.UTF-8 or another modern $LANG setting (or at least en_US)
# to support extended character sets.
#export LANG=C

Without giving away what the 'C' actually stands for, but I would guess that 'C' is an alias for this very lowest and safest level of locale.... Not very satisfactory I know :(.

To see this comment for yourself in the Slackware package try the following:

wget http://slackware.osuosl.org/slackware-14.2/source/a/etc/_etc.tar.gz
tar -zxvf _etc.tar.gz etc/profile.d/lang.sh.new --strip-components 2

And then open the file lang.sh.new with your favoured text editor...