Man page - getauxval(3)

Packages contains this manual

Available languages:

en fr ja ru

Manual

GETAUXVAL

名 前
書 式
説 明
返 り 値
エ ラ ー
バ ー ジ ョ ン
属 性
準 拠
注 意
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

getauxval - 補 助 ベ ク ト ル か ら 値 を 取 得 す る

書 式

#include <sys/auxv.h>

unsigned long getauxval(unsigned long type );

説 明

getauxval () 関 数 は 補 助 ベ ク ト ル (auxiliary vector) か ら 値 を 取 得 す る 。 補 助 ベ ク ト ル は 、 プ ロ グ ラ ム が 実 行 さ れ る 際 に 、 カ ー ネ ル の ELF バ イ ナ リ ー ロ ー ダ ー が ユ ー ザ ー 空 間 に あ る 種 の 情 報 を 渡 す の に 使 わ れ る 仕 組 み で あ る 。

補 助 ベ ク ト ル の 各 エ ン ト リ ー は 、 こ の エ ン ト リ ー を 示 す タ イ プ と そ の タ イ プ の 値 の ペ ア で 構 成 さ れ る 。 引 数 type が 指 定 さ れ る と 、 getauxval () は 対 応 す る 値 を 返 す 。

そ れ ぞ れ の type に 対 し て 返 さ れ る 値 の 詳 細 を 以 下 に 示 す 。 す べ て の ア ー キ テ ク チ ャ ー で す べ て type 値 が 存 在 す る わ け で は な い 。
AT_BASE

プ ロ グ ラ ム イ ン タ ー プ リ タ ー (通 常 は 動 的 ロ ー ダ ー ) の ベ ー ス ア ド レ ス 。

AT_BASE_PLATFORM

A pointer to a string (PowerPC and MIPS only). On PowerPC, this identifies the real platform; may differ from AT_PLATFORM . On MIPS, this identifies the ISA level (since Linux 5.7).

AT_CLKTCK

times (2) の カ ウ ン ト が 行 わ れ る 周 波 数 。 こ の 値 は sysconf(_SC_CLK_TCK) で も 取 得 で き る 。

AT_DCACHEBSIZE

デ ー タ キ ャ ッ シ ュ の ブ ロ ッ ク サ イ ズ 。

AT_EGID

こ の ス レ ッ ド の 実 効 グ ル ー プ ID。

AT_ENTRY

実 行 フ ァ イ ル の エ ン ト リ ー ア ド レ ス 。

AT_EUID

こ の ス レ ッ ド の 実 効 ユ ー ザ ー ID。

AT_EXECFD

プ ロ グ ラ ム の フ ァ イ ル デ ィ ス ク リ プ タ ー 。

AT_EXECFN

A pointer to a string containing the pathname used to execute the program.

AT_FLAGS

フ ラ グ (未 使 用 )。

AT_FPUCW

使 用 さ れ た FPU 制 御 ワ ー ド (SuperH ア ー キ テ ク チ ャ ー の み )。 カ ー ネ ル が 実 行 し た FPU 初 期 化 に 関 す る 情 報 を 提 供 す る た め の も の で あ る 。

AT_GID

こ の ス レ ッ ド の 実 グ ル ー プ ID。

AT_HWCAP

An architecture and ABI dependent bit-mask whose settings indicate detailed processor capabilities. The contents of the bit mask are hardware dependent (for example, see the kernel source file arch/x86/include/asm/cpufeature.h for details relating to the Intel x86 architecture; the value returned is the first 32-bit word of the array described there). A human-readable version of the same information is available via /proc/cpuinfo .

AT_HWCAP2 (glibc 2.18 以 降 )

Further machine-dependent hints about processor capabilities.

AT_ICACHEBSIZE

命 令 キ ャ ッ シ ュ の ブ ロ ッ ク サ イ ズ 。

AT_L1D_CACHEGEOMETRY

Geometry of the L1 data cache, encoded with the cache line size in bytes in the bottom 16 bits and the cache associativity in the next 16 bits. The associativity is such that if N is the 16-bit value, the cache is N-way set associative.

AT_L1D_CACHESIZE

L1 デ ー タ キ ャ ッ シ ュ の サ イ ズ 。

AT_L1I_CACHEGEOMETRY

Geometry of the L1 instruction cache, encoded as for AT_L1D_CACHEGEOMETRY .

AT_L1I_CACHESIZE

L1 命 令 キ ャ ッ シ ュ の サ イ ズ 。

AT_L2_CACHEGEOMETRY

Geometry of the L2 cache, encoded as for AT_L1D_CACHEGEOMETRY .

AT_L2_CACHESIZE

L2 キ ャ ッ シ ュ の サ イ ズ 。

AT_L3_CACHEGEOMETRY

Geometry of the L3 cache, encoded as for AT_L1D_CACHEGEOMETRY .

AT_L3_CACHESIZE

L3 キ ャ ッ シ ュ の サ イ ズ 。

AT_PAGESZ

シ ス テ ム ペ ー ジ サ イ ズ ( sysconf(_SC_PAGESIZE) が 返 す 値 と 同 じ )。

AT_PHDR

実 行 プ ロ グ ラ ム の プ ロ グ ラ ム ヘ ッ ダ ー の ア ド レ ス 。

AT_PHENT

プ ロ グ ラ ム ヘ ッ ダ ー エ ン ト リ ー の サ イ ズ 。

AT_PHNUM

プ ロ グ ラ ム ヘ ッ ダ ー 数 。

AT_PLATFORM

こ の プ ロ グ ラ ム が 実 行 さ れ て い る ハ ー ド ウ ェ ア プ ラ ッ ト フ ォ ー ム を 特 定 す る 文 字 列 へ の ポ イ ン タ ー 。 動 的 リ ン カ ー は rpath 値 の 解 釈 を 行 う 際 に こ の 値 を 使 用 す る 。

AT_RANDOM

ラ ン ダ ム 値 が 入 っ た 16 バ イ ト が あ る ア ド レ ス 。

AT_SECURE

Has a nonzero value if this executable should be treated securely. Most commonly, a nonzero value indicates that the process is executing a set-user-ID or set-group-ID binary (so that its real and effective UIDs or GIDs differ from one another), or that it gained capabilities by executing a binary file that has capabilities (see capabilities (7)). Alternatively, a nonzero value may be triggered by a Linux Security Module. When this value is nonzero, the dynamic linker disables the use of certain environment variables (see ld-linux.so (8)) and glibc changes other aspects of its behavior. (See also secure_getenv (3).)

AT_SYSINFO

vDSO の シ ス テ ム コ ー ル 関 数 へ の エ ン ト リ ー ポ イ ン ト 。 す べ て の ア ー キ テ ク チ ャ ー で 存 在 す る わ け で は な く 、 ま た 必 要 と い う わ け で も な い (例 え ば x86-64 に は 存 在 し な い )。

AT_SYSINFO_EHDR

仮 想 動 的 共 有 オ ブ ジ ェ ク ト (vDSO; virtual Dynamic Shared Object) が 入 っ た ペ ー ジ の ア ド レ ス 。 vDSO は 、 特 定 の シ ス テ ム コ ー ル の 高 速 な 実 装 を 提 供 す る た め に カ ー ネ ル が 作 成 す る 共 有 オ ブ ジ ェ ク ト で あ る 。

AT_UCACHEBSIZE

ユ ニ フ ァ イ ド (unified) キ ャ ッ シ ュ の ブ ロ ッ ク サ イ ズ 。

AT_UID

こ の ス レ ッ ド の 実 ユ ー ザ ー ID。

返 り 値

成 功 す る と 、 getauxval () は type に 対 応 す る 値 を 返 す 。 type が 見 つ か ら な い 場 合 に は 0 を 返 す 。

エ ラ ー

ENOENT (glibc 2.19 以 降 )

type に 対 応 す る エ ン ト リ ー が 補 助 ベ ク ト ル に な か っ た 。

バ ー ジ ョ ン

getauxval () 関 数 は glibc バ ー ジ ョ ン 2.16 で 追 加 さ れ た 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-22006-1.png

準 拠

こ の 関 数 は 非 標 準 で glibc に よ る 拡 張 で あ る 。

注 意

補 助 ベ ク ト ル の 情 報 を 主 に 使 用 す る の は 、 動 的 ロ ー ダ ー ld-linux.so (8) で あ る 。 補 助 ベ ク ト ル は 、 カ ー ネ ル が 動 的 リ ン カ ー が 通 常 も し く は 常 に 必 要 と す る あ る 意 味 標 準 的 な 情 報 を 伝 え る た め の 便 利 で 効 率 的 な シ ョ ー ト カ ッ ト で あ る 。 い く つ か の 場 合 で は 、 同 じ 情 報 が シ ス テ ム コ ー ル 経 由 で も 取 得 で き る が 、 補 助 ベ ク ト ル を 使 う 方 が コ ス ト が か か ら な い 。

補 助 ベ ク ト ル に は 、 単 に 、 プ ロ セ ス の ア ド レ ス 空 間 の 引 数 リ ス ト と 環 境 上 に 存 在 す る だ け で あ る 。 プ ロ グ ラ ム 実 行 時 に LD_SHOW_AUXV 環 境 変 数 を 設 定 す る と 、 プ ロ グ ラ ム に 渡 さ れ た 補 助 ベ ク ト ル を 表 示 す る こ と が で き る 。

$ LD_SHOW_AUXV=1 sleep 1

任 意 の プ ロ セ ス の 補 助 ベ ク ト ル は (フ ァ イ ル の ア ク セ ス 許 可 が あ れ ば ) /proc/[pid]/auxv 経 由 で 取 得 で き る 。 詳 細 は proc (5) を 参 照 。

バ グ

glibc 2.19 で ENOENT エ ラ ー が 追 加 さ れ る 前 は 、 type が 見 つ か ら な か っ た 場 合 と type に 対 応 す る 値 が 0 だ っ た 場 合 を 明 確 に 区 別 す る 方 法 が な か っ た 。

関 連 項 目

secure_getenv (3), vdso (7), ld-linux.so (8)

こ の 文 書 に つ い て

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