GETPAGESIZE

Section: Linux Programmer's Manual (2)
Updated: 2017-09-15
Index JM Home Page
 

名前

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

書式

#include <unistd.h>

int getpagesize(void);

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

getpagesize():

glibc 2.19 以降:
 _DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
glibc 2.12 から 2.19 まで:
 _BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
glibc 2.12 より前:

 _BSD_SOURCE || _XOPEN_SOURCE >= 500
 

説明

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

関連キーワード

アーキテクチャー   依存   メモリー   マシン   モデル   getpagesize   unistd   固定   SUSv   バイナリ   検査   マクロ   要件   macros   バイト   ブロック   割り当て   マッピング   単位   過去   遺物   移植性   アプリケーション   long   sysconf

Linux マニュアル 一覧

関連するコマンド・関数

mmap.2   munmap.2   mmap64.3   mincore.2   mmap2.2   rwho.1
 

Index

名前
書式
説明
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:56 GMT, October 11, 2026