a64l, l64a - convert between 32-bit integer and radix-64
a64l(const char *s);
The a64l() and l64a() functions are used to maintain numbers
radix-64 ASCII characters. This is a notation by which
can be represented by up to six characters; each character
``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
and returns a corresponding 32-bit value. If the
to by s contains more than six characters, a64l() will
use the first
six. a64l() scans the character string from left to right,
character as a 6-bit radix-64 number. If a long integer is
32 bits, the return value will be sign-extended.
l64a() takes a long integer argument l and returns a pointer
to the corresponding
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
returns -1 and sets the global variable errno to EINVAL.
On success, l64a() returns a pointer to a string containing
representation of l. If l is 0, l64a() returns a pointer to
string. If l is negative, l64a() returns a null pointer and
global variable errno to EINVAL.
The value returned by l64a() is a pointer into a static
buffer, the contents
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
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
OpenBSD 3.6 August 17, 1997
[ Back ]