Man Linux: Main Page and Category List

NAME

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

SYNOPSIS

       #include <stdlib.h>

       long a64l(const char *s);
       char *l64a(long value);

DESCRIPTION

       These functions 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 radix-64 notation.
       If the type long contains more than 32 bits, only the low-order 32 bits
       shall be used for these operations.

       The characters used to represent digits are ’.’ (dot) for 0, ’/’ for 1,
       ’0’  through  ’9’  for  [2,11],  ’A’  through  ’Z’ for [12,37], and ’a’
       through ’z’ for [38,63].

       The a64l() function shall take a pointer to a radix-64  representation,
       in  which  the  first  digit  is  the least significant, and return the
       corresponding long value. If the string pointed to by s  contains  more
       than  six  characters, a64l() shall use the first six. If the first six
       characters of the string contain a null terminator,  a64l()  shall  use
       only  characters  preceding  the  null  terminator. The a64l() function
       shall scan the character string from  left  to  right  with  the  least
       significant  digit  on  the  left,  decoding  each character as a 6-bit
       radix-64 number. If the type long  contains  more  than  32  bits,  the
       resulting value is sign-extended. The behavior of a64l() is unspecified
       if s is a null pointer or the string pointed to by s was not  generated
       by a previous call to l64a().

       The  l64a() function shall take a long argument and return a pointer to
       the corresponding radix-64 representation.  The behavior of  l64a()  is
       unspecified if value is negative.

       The  value  returned  by  l64a() may be a pointer into a static buffer.
       Subsequent calls to l64a() may overwrite the buffer.

       The l64a() function need not be  reentrant.  A  function  that  is  not
       required to be reentrant is not required to be thread-safe.

RETURN VALUE

       Upon   successful  completion,  a64l()  shall  return  the  long  value
       resulting from conversion of the input string. If a string  pointed  to
       by s is an empty string, a64l() shall return 0L.

       The   l64a()   function   shall   return  a  pointer  to  the  radix-64
       representation.  If value is 0L, l64a() shall return a  pointer  to  an
       empty string.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       If   the   type  long  contains  more  than  32  bits,  the  result  of
       a64l(l64a(x)) is x in the low-order 32 bits.

RATIONALE

       This is not the same encoding as used by either encoding variant of the
       uuencode utility.

FUTURE DIRECTIONS

       None.

SEE ALSO

       strtoul()  ,  the  Base  Definitions  volume  of  IEEE Std 1003.1-2001,
       <stdlib.h>, the Shell and  Utilities  volume  of  IEEE Std 1003.1-2001,
       uuencode

COPYRIGHT

       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003  by  the  Institute  of
       Electrical  and  Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained  online
       at http://www.opengroup.org/unix/online.html .