Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


A64L(3)                    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
     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.

NetBSD 10.99                      May 6, 2010                     NetBSD 10.99