A64L
Section: Linux Programmer's Manual (3)
Updated: 2007-07-26
Index
JM Home Page
roff page
 
名前
a64l, l64a - long と base-64 を変換する
 
書式
#include <stdlib.h>
long a64l(char *str64);
char *l64a(long value);
glibc 向けの機能検査マクロの要件
(feature_test_macros(7)
参照):
a64l(),
l64a():
_SVID_SOURCE || _XOPEN_SOURCE >= 500
 
説明
これらの関数は 32 ビット long 整数と
リトルエンディアン base-64 ASCII 文字列 (長さ 0 〜 6) の間の変換を行う。
a64l()
の引き数の文字列が 7 文字以上の場合、
最初の 6 バイトが使われる。
long
型が 32 ビットより大きい場合、
l64a()
は
value
の下位 32 ビットのみを使い、
a64l()
は 32 ビットの結果を符号拡張 (sign-extend) する。
base-64 システムで使われる 64 個の文字は以下の通りである:
- 
aq.aq   は 0 を表す。
aq/aq   は 1 を表す。
0-9     は 2-11 を表す。
A-Z     は 12-37 を表す。
a-z     は 38-63 を表す。
 
よって 123 = 59*64^0 + 1*64^1 = "v/" である。準拠
POSIX.1-2001.
 
注意
a64l()
で返される値は静的バッファへのポインタかもしれないので、
以降の呼び出しで上書きされる可能性がある。
value
が負の場合、
l64a()
の動作は定義されていない。
value
が 0 の場合は空文字列を返す。
これらの関数は glibc 2.2.5 以前では間違っている
(最上位デジットを最初にしている)。
これは
uuencode(1)
で使われるエンコーディングではない。
 
関連項目
uuencode(1),
strtoul(3)
 Index
- 名前
- 
- 書式
- 
- 説明
- 
- 準拠
- 
- 注意
- 
- 関連項目
- 
This document was created by
man2html,
using the manual pages.
Time: 03:26:36 GMT, April 25, 2010