MirOS Manual: a64l(3), l64a(3)

A64L(3)                    BSD Programmer's Manual                     A64L(3)


     a64l, l64a - convert between 32-bit integer and radix-64 ASCII string


     #include <stdlib.h>

     a64l(const char *s);

     char *
     l64a(long l);


     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 NUL-terminated radix-64
     representation 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, decoding
     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 l 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 l. If l is 0, l64a() returns a pointer to the empty
     string. If l is negative, l64a() returns a null pointer and sets the glo-
     bal 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.2 ("XPG4.2").

MirOS BSD #10-current          August 17, 1997                               1

Generated on 2017-04-03 16:26:17 by $MirOS: src/scripts/roff2htm,v 1.88 2017/01/29 00:51:06 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002–2017 The MirOS Project, Germany.
This product includes material provided by mirabilos.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.