Manpages

名 前

a64l, l64a − long と base−64 を 変 換 す る

書 式

#include <stdlib.h>

long a64l(const char *str64);

char *l64a(long value);

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

a64l(), l64a():

_SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

説 明

こ れ ら の 関 数 は 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/" で あ る 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )

l64a() 関 数 は ス レ ッ ド セ ー フ で は な い 。

a64l() 関 数 は ス レ ッ ド セ ー フ で あ る 。

準 拠

POSIX.1−2001.

注 意

l64a() で 返 さ れ る 値 は 静 的 バ ッ フ ァ ー へ の ポ イ ン タ ー か も し れ な い の で 、 以 降 の 呼 び 出 し で 上 書 き さ れ る 可 能 性 が あ る 。

value が 負 の 場 合 、 l64a() の 動 作 は 定 義 さ れ て い な い 。 value が 0 の 場 合 は 空 文 字 列 を 返 す 。 こ れ ら の 関 数 は glibc 2.2.5 以 前 で は 間 違 っ て い る (最 上 位 デ ジ ッ ト を 最 初 に し て い る )。 こ れ は uuencode(1) で 使 わ れ る エ ン コ ー デ ィ ン グ で は な い 。

関 連 項 目

uuencode(1), strtoul(3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。