A64L(3) BSD Library Functions Manual A64L(3)NAME
a64l, l64a — convert between 32-bit integer and radix-64 ASCII string
a64l(const char *s);
The a64l() and l64a() functions are used to maintain numbers stored in
radix-64 ASCII characters. This is a notation by which 32-bit integers
can be represented by up to six characters; each character represents a
“digit” in a radix-64 notation.
The characters used to represent digits are ‘.’ for 0, ‘/’ for 1, ‘0’
through ‘9’ for 2-11, ‘A’ through ‘Z’ for 12-37, and ‘a’ through ‘z’ for
The a64l() function takes a pointer to a null-terminated radix-64 repre‐
sentation and returns a corresponding 32-bit value. If the string
pointed to by s contains more than six characters, a64l() will use the
first six. a64l() scans the character string from left to right, decod‐
ing each character as a 6-bit radix-64 number. If a long integer is
larger than 32 bits, the return value will be sign-extended.
l64a() takes a long integer argument value and returns a pointer to the
corresponding radix-64 representation.
On success, a64l() returns a 32-bit representation of s. If s is a null
pointer or if it contains digits other than those described above.
a64l() returns -1 and sets the global variable errno to EINVAL.
On success, l64a() returns a pointer to a string containing the radix-64
representation of value. If value is 0, l64a() returns a pointer to the
empty string. If value is negative, l64a() returns a null pointer and
sets the global variable errno to EINVAL.
The value returned by l64a() is a pointer into a static buffer, the con‐
tents of which will be overwritten by subsequent calls.
The value returned by a64l() may be incorrect if the value is too large;
for that reason, only strings that resulted from a call to l64a() should
be used to call a64l().
If a long integer is larger than 32 bits, only the low-order 32 bits are
The a64l() and l64a() functions conform to X/Open Portability Guide
Issue 4, Version 2 (“XPG4.2”).
BSD August 17, 1997 BSD