int getpagesize(void);
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
getpagesize():
_DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
_BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
#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 では大丈夫である。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]