bionic (2) getpagesize.2.gz

Provided by: manpages-ja-dev_0.5.0.0.20161015+dfsg-1_all bug

名前

       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/ に書かれている。