NAME
a64l,
l64a,
l64a_r —
convert between a long integer and a base-64 ASCII
string
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdlib.h>
long
a64l(
const char
*s);
char *
l64a(
long int
l);
int
l64a_r(
long int
l,
char *buffer,
int buflen);
DESCRIPTION
The
a64l() and
l64a() functions convert
between a long integer and its base-64 ASCII string representation.
The characters used to represent ``digits'' are `.' for 0, `/' for 1, `0' - `9'
for 2 - 11, `A' - `Z' for 12 - 37, and `a' - `z' for 38 - 63.
a64l() takes a pointer to a NUL-terminated base-64 ASCII
string representation,
s, and returns the corresponding
long integer value.
l64a() takes a long integer value,
l,
and returns a pointer to the corresponding NUL-terminated base-64 ASCII string
representation.
l64a_r() performs a conversion identical to that of
l64a() and stores the resulting representation in the memory
area pointed to by
buffer, consuming at most
buflen characters including the terminating NUL
character.
RETURN VALUES
On successful completion,
a64l() returns the long integer
value corresponding to the input string. If the string pointed to by
s is an empty string,
a64l() returns a
value of 0L.
l64a() returns a pointer to the base-64 ASCII string
representation corresponding to the input value. If
l is
0L,
l64a() returns a pointer to an empty string.
On successful completion,
l64a_r() returns 0; if
buffer is of insufficient length, -1 is returned.
SEE ALSO
strtol(3)
STANDARDS
The
a64l() and
l64a() functions conform to
X/Open Portability Guide Issue 4, Version 2
(“XPG4.2”) and
IEEE Std 1003.1-2004
(“POSIX.1”). The
l64a_r() function
conforms to
System V Interface Definition, Fourth
Edition (“SVID4”), Multithreading Extension.
BUGS
The
l64a() function is not reentrant. The value returned by it
points into a static buffer area; subsequent calls to
la64a() may overwrite this buffer. In multi-threaded
applications,
l64a_r() should be used instead.