HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > g > getpagesize - システムコールの説明

getpagesize - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 歴史
  5. 準拠
  6. 注意
  7. 関連項目

名前

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

書式

#include <unistd.h>
int getpagesize(void);

説明

getpagesize ()関数はページの大きさをバイト数で返す。ここでの「ページ」は   mmap (2) の説明の中で使用されているもので、 mmap ()はこのページサイズの単位でファイルをマップする。
mmap ()が使用するページサイズは以下のようにして知ることができる。

#include <unistd.h>
long sz = sysconf(_SC_PAGESIZE);


(一部のシステムでは _SC_PAGESIZE の代わりに _SC_PAGE_SIZE を使用することができる)、もしくは以下のようにする:

#include <unistd.h>
int sz = getpagesize();


歴史

このシステムコールは 4.2BSD で初めて登場した。

準拠

SVr4, 4.4BSD, SUSv2. SUSv2 では getpagesize ()システムコールは「過去の遺物 (LEGACY)」とされており、 POSIX.1-2001 からは外されている。 HP-UX にはこのシステムコールは存在しない。

注意

getpagesize ()が Linux の system call として存在するかどうかはそのアーキテクチャに 依存している。 システムコールとして存在する場合には、カーネルシンボルの PAGE_SIZE を返す。 PAGE_SIZE は、アーキテクチャとマシンモデルに依存する。 一般に、バイナリは、アーキテクチャごとに1つのバイナリ配布で済ませるために、 アーキテクチャには依存しているがマシンモデルには依存していない。 したがって、ユーザプログラムはコンパイル時にヘッダーファイルから PAGE_SIZE を見つけて使用すべきではないことが分かる。 少なくとも、マシンモデルについても依存性が存在する (sun4 のような) アーキテクチャにおいては本物のシステムコールを使用する必要がある。 尚、 libc4, libc5, glibc 2.0 では、 getpagesize ()がシステム・コールを使用せず、固定の値を返すために、この方法は 失敗する。glibc 2.1 では大丈夫である。

関連項目

Linux Tips 関連記事
Linux Tips(目次)
Linux ディストリビューション一覧
rpm のファイル名にあるi386とかi686とは
自分のマシンの情報を調べる
cron の設定
ssh の root ログインを禁止する
ssh を、ユーザ、IPでアクセス制限
鍵交換方式によるssh接続
鍵交換方式によるssh接続( windowsから )
複数ファイル内の文字列を置換して上書き保存する
あるグループをイニシャルグループとするユーザー一覧出力
複数ファイルのファイル名を一括変換する
連番ファイルをコマンド一発で作成する
中身がランダムなファイルを任意のサイズで作成する
Linux ユーザーアカウントをロック・アンロックする