A64L(3)                 NetBSD Library Functions Manual                A64L(3)

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 represen-
     tation, s, and returns the corresponding long integer value.

     l64a() takes a long integer value, l, and returns a pointer to the corre-
     sponding 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, consum-
     ing at most buflen characters including the terminating NUL character.

RETURN VALUES
     On successful completion, a64l() returns the long integer value corre-
     sponding 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 cor-
     responding 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 insuffi-
     cient 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.

NetBSD 5.0                        May 6, 2010                       NetBSD 5.0