名 前
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 で は 大 丈 夫 で あ る 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。