Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all
名前
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 のような) アーキテクチャにおいては本物のシステムコールを使用する必要がある。 尚、 libc4, libc5, glibc 2.0 では、 getpagesize() がシステムコールを使用せず、固定の値を返すた めに、この方法は 失敗する。glibc 2.1 では大丈夫である。
関連項目
mmap(2), sysconf(3)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。