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 個の文字は以下の通りである:


'.'     は 0 を表す。
'/'     は 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: 04:31:30 GMT, November 19, 2007