Manpages

名 前

getpagesize − メ モ リ ー の ペ ー ジ サ イ ズ を 取 得 す る

書 式

#include <unistd.h>

int getpagesize(void);

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

getpagesize():

glibc 2.12 以 降 :

_BSD_SOURCE ||
!(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)

glibc 2.12 よ り 前 : _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

説 明

getpagesize() 関 数 は メ モ リ ー ペ ー ジ の 大 き さ を バ イ ト 数 で 返 す 。 こ こ で い う 「 ペ ー ジ 」 は 固 定 長 の ブ ロ ッ ク で あ り 、 mmap(2) で 実 行 さ れ る メ モ リ ー 割 り 当 て と フ ァ イ ル マ ッ ピ ン グ の 単 位 で あ る 。

準 拠

SVr4, 4.4BSD, SUSv2. SUSv2 で は getpagesize() シ ス テ ム コ ー ル は 「 過 去 の 遺 物 (LEGACY)」 と さ れ て お り 、 POSIX.1−2001 か ら は 外 さ れ て い る 。 HP−UX に は こ の シ ス テ ム コ ー ル は 存 在 し な い 。

注 意

移 植 性 が 必 要 な ア プ リ ケ ー シ ョ ン で は 、 getpagesize() で は な く sysconf(_SC_PAGESIZE) を 利 用 す べ き で あ る 。

#include <unistd.h>
long sz = sysconf(_SC_PAGESIZE);

(ほ と ん ど の シ ス テ ム で は _SC_PAGESIZE の 同 義 語 と し て _SC_PAGE_SIZE を 使 用 す る こ と が で き る 。 )

getpagesize() が Linux の シ ス テ ム コ ー ル と し て 存 在 す る か ど う か は 、 そ の ア ー キ テ ク チ ャ ー に 依 存 し て い る 。 シ ス テ ム コ ー ル と し て 存 在 す る 場 合 に は 、 カ ー ネ ル シ ン ボ ル の PAGE_SIZE を 返 す 。 PAGE_SIZE の 値 は 、 ア ー キ テ ク チ ャ ー と マ シ ン モ デ ル に 依 存 す る 。 一 般 に 、 バ イ ナ リ は 、 ア ー キ テ ク チ ャ ー ご と に 1つ の バ イ ナ リ 配 布 で 済 ま せ る た め に 、 ア ー キ テ ク チ ャ ー に は 依 存 し て い る が マ シ ン モ デ ル に は 依 存 し て い な い 。 つ ま り 、 ユ ー ザ ー プ ロ グ ラ ム は コ ン パ イ ル 時 に ヘ ッ ダ ー フ ァ イ ル か ら PAGE_SIZE を 見 つ け て 使 用 す べ き で は な い 。 少 な く と も 、 マ シ ン モ デ ル に つ い て も 依 存 性 が 存 在 す る (sun4 の よ う な ) ア ー キ テ ク チ ャ ー に お い て は 本 物 の シ ス テ ム コ ー ル を 使 用 す る 必 要 が あ る 。 尚 、 glibc 2.0 で は 、 getpagesize() が シ ス テ ム コ ー ル を 使 用 せ ず 、 固 定 の 値 を 返 す た め に 、 こ の 方 法 は 失 敗 す る 。 glibc 2.1 で は 大 丈 夫 で あ る 。

関 連 項 目

mmap(2), sysconf(3)

こ の 文 書 に つ い て

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