summaryrefslogtreecommitdiffstats
path: root/man3/a64l.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/a64l.3')
-rw-r--r--man3/a64l.366
1 files changed, 66 insertions, 0 deletions
diff --git a/man3/a64l.3 b/man3/a64l.3
new file mode 100644
index 000000000..21ac2bfab
--- /dev/null
+++ b/man3/a64l.3
@@ -0,0 +1,66 @@
+.\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de)
+.\" Distributed under GPL
+.\"
+.\" Corrected, aeb, 2002-05-30
+.\"
+.TH A64L 3 2002-02-15 "" "Linux Programmer's Manual"
+.SH NAME
+a64l, l64a \- convert between long and base-64
+.SH SYNOPSIS
+.B #include <stdlib.h>
+.sp
+.BI "long a64l(char *" str64 );
+.sp
+.BI "char *l64a(long " value );
+.sp
+.SH DESCRIPTION
+These functions provide a conversion between 32-bit long integers
+and little-endian base-64 ASCII strings (of length zero to six).
+If the string used as argument for
+.BR a64l ()
+has length greater than six, only the first six bytes are used.
+If longs have more than 32 bits, then
+.BR l64a ()
+uses only the low order 32 bits of
+.IR value ,
+and
+.BR a64l ()
+sign-extends its 32-bit result.
+.LP
+The 64 digits in the base 64 system are:
+.RS
+.nf
+\&'.' represents a 0
+\&'/' represents a 1
+0-9 represent 2-11
+A-Z represent 12-37
+a-z represent 38-63
+.fi
+.RE
+.br
+So 123 = 59*64^0 + 1*64^1 = "v/".
+.SH NOTES
+The value returned by
+.BR a64l ()
+may be a pointer to a static buffer, possibly overwritten
+by later calls.
+.LP
+The behaviour of
+.BR l64a ()
+is undefined when
+.I value
+is negative. If
+.I value
+is zero, it returns an empty string.
+.LP
+These functions are broken in glibc before 2.2.5
+(puts most significant digit first).
+.LP
+This is not the encoding used by
+.BR uuencode (1).
+.SH "CONFORMING TO"
+XPG 4.2, POSIX 1003.1-2001.
+.SH "SEE ALSO"
+.BR uuencode (1),
+.BR itoa (3),
+.BR strtoul (3)