SWAPON
Section: Linux Programmer's Manual (2)
Updated: 2007-06-22
Index
JM Home Page
roff page
 
名前
swapon, swapoff - ファイル/デバイスへのスワップを開始/停止する
 
書式
#include <unistd.h>
#include <asm/page.h>     /* PAGE_SIZE を見つけるため */
#include <sys/swap.h>
int swapon(const char *path, int swapflags);
int swapoff(const char *path);
 
説明
swapon()
は
path
で指定されたファイルやブロック・デバイスにスワップ領域を設定する。
swapoff()
は
path
で指定されたファイルやブロック・デバイスへのスワップを停止する。
swapon()
は
swapflags
引き数を取る。
swapflags
に
SWAP_FLAG_PREFER
ビットが設定された場合は、新しいスワップ領域はデフォルトよりも高い
優先度を持つ。
優先度は
swapflags
に以下のようにコード化されている。
    (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
これらの関数は特権プロセス
(CAP_SYS_ADMIN
ケーパビリティ (capability) を持つプロセス) のみが使用できる。
 
優先度
それぞれのスワップ領域は高 (high) と低 (low) のどちらかの優先度を持つ。
デフォルトの優先度は低である。
低い優先度の領域において、新しい領域は古い領域よりさらに低い
優先度を持つ。
swapflags
が設定されたものは全て高い優先度となり、デフォルトよりも高い優先度を持つ。
使用者はそれらに負でない値が指定できる。
大きな数字は高い優先度を意味する。
高い優先度の領域から順にスワップ・ページとして使用される。
より低い優先度の領域を使用する前により高い優先度の
領域を使い切る。もし二つ以上の領域が同じ優先度を持ち、
使える中で一番高い優先度であれば、それらのページは間で
ラウンド・ロビン方式で配分される。
Linux 1.3.6 において、カーネルは通常はこれらの規則に従っている。
しかし例外も存在している。
 
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、
errno
が適切に設定される。
 
エラー
- EBUSY
- 
(swapon()
において) 指定された
path
が既にスワップ領域として使用されている。
- EINVAL
- 
ファイル
path
は存在するが、通常のファイルもブロック・デバイスも参照していない。
または
swapon()
において、指定された path のファイルが有効なスワップの署名 (signature) を
含んでいないか、tmpfs のようなインメモリ (in-memory) のファイルシステム
上にある。
または
swapoff()
において、
path
が現在のところスワップ領域でない。
- ENFILE
- 
オープンされたファイルの総数がシステムの制限に達した。
- ENOENT
- 
ファイル
path
が存在しない。
- ENOMEM
- 
スワップを開始するのに十分なメモリーがシステムにない。
- EPERM
- 
使用者が
CAP_SYS_ADMIN
ケーパビリティを持っていない。
もしくは、最大数のスワップファイルがすでに使用されている
(下記の「注意」の節を参照)。
準拠
これらの関数は Linux 特有であり、移植を意図したプログラムでは
使用してはいけない。
二番目の
swapflags
引き数は Linux 1.3.2 から導入された。
 
注意
パーティションやパスは
mkswap(8)
によって準備されていなければならない。
使用できるスワップファイルの数には上限があり、その上限は
カーネル定数
MAX_SWAPFILES
で定義される。
MAX_SWAPFILES
の値は、カーネル 2.4.10 より前では 8、
カーネル 2.4.10 以降では 32 である。
カーネル 2.6.18 以降では、カーネルが
CONFIG_MIGRATION
オプションを有効にして作成された場合、
この上限が 2 少ない値 (つまり 30) となる
(このカーネルでは、
mbind(2)
と
migrate_pages(2)
のページ・マイグレーション機能用にスワップ・テーブルのエントリーが
二つ予約される)。
 
関連項目
mkswap(8),
swapoff(8),
swapon(8)
 Index
- 名前
- 
- 書式
- 
- 説明
- 
- 優先度
- 
 
- 返り値
- 
- エラー
- 
- 準拠
- 
- 注意
- 
- 関連項目
- 
This document was created by
man2html,
using the manual pages.
Time: 03:26:57 GMT, April 25, 2010