EN JA
A64L(3)
A64L(3) FreeBSD Library Functions Manual A64L(3)

名称

a64l, l64a, l64a_rlong 整数と base-64 ASCII 文字列の間を変換する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < stdlib.h>

long
a64l( const char *s);

char *
l64a( long int l);

int
l64a_r( long int l, char *buffer, int buflen);

解説

これらの関数は、radix-64 ASCII 文字に格納された数を保持するために使用されます。これは最大 6 文字で表現することができる 32 ビット整数の記法です。各文字は radix-64 記法で 1 つの数値を表します。タイプ long が 32 ビット以上を含んでいるなら、下位の 32 ビットだけが、これらの操作に使用されます。

“数値”を表すために使用される文字は、0 には‘ .’、1 には‘ /’、2 - 11 には‘ 0’ - ‘ 9’、12 - 37 には‘ A’ - ‘ Z’および 38 - 63 には‘ a’ - ‘ z’です。

a64l() 関数は、最初の数値が最下位である、radix-64 表現へのポインタをとり、対応する long 値を返します。 s によって指された文字列が 6 文字以上を含んでいるなら、 a64l() は最初の 6 つを使用します。文字列の最初の 6 文字がヌル終端を含んでいるなら、 a64l() はヌル終端に先行する文字だけを使用します。 a64l() 関数は、6 ビットの radix-64 数値として各文字をデコードして、最下位桁が左にある状態で、左から右まで文字列をスキャンします。タイプ long が 32 ビット以上を含んでいるなら、結果の値はサイン拡張されます。 s が NULL ポインタであるか、 s によって指される文字列が l64a() への前の呼び出しで生成されないなら、 a64l() の振る舞いは、不定です。

l64a() 関数は、 long 引数をとり、対応する radix-64 表現へのポインタを返します。 l64a() の振る舞いは、値が負であるなら、不定です。

l64a() によって返された値は、静的なバッファ中へのポインタです。 l64a() へのその後の呼び出しはバッファを上書きします。

l64a_r() 関数は、 l64a() のものと同じ変換を実行して、多くても終端の ヌル文字 を含む buflen 文字を消費する buffer によって指されたメモリ領域に結果の表現を格納します。

戻り値

成功して終了すれば、 a64l() は、入力文字列の変換の結果である long 値を返します。 s によって指された文字列が空の文字列であるなら、 a64l() は 0 を返します。

l64a() 関数は radix-64 表現へのポインタを返します。値が 0 であるなら、 l64a() は、空の文字列へのポインタを返します。

関連項目

strtoul(3)

歴史

a64l(), l64a() と l64a_r() 関数は、変更を加えて NetBSD に由来します。それらは、 FreeBSD 6.1 で登場しました。

作者

a64l(), l64a() と l64a_r() 関数は、 Tom Rhodes <trhodes@FreeBSD.org>によって FreeBSD に追加されました。このマニュアルページのほとんどすべては、 POSIX 規格に由来します。
November 20, 2005 FreeBSD