スポンサーリンク

SWAPON(2) FreeBSD システムコールマニュアル SWAPON(2)

名称

swapon, swapoff − インタリーブページング/スワップ用のスワップデバイスの制 御

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <unistd.h>

int

swapon(const char *special);

int

swapoff(const char *special);

解説

swapon() システムコールは、システムがページングとスワッピングの割り当てに ブロックデバイス special を使用できるようにします。潜在的に使用できるデバ イスの名前はシステムに知られていて、システム設定時に定義されます。 special のスワップ領域のサイズは、デバイスがスワッピングに初めて使用でき るようになるときに算出されます。

swapoff() システムコールは、与えられたデバイスのページングとスワッピング を無効にします。すべての関連したスワップのメタデータは割り当て解除され、 そのデバイスは他の用途で利用可能にされます。

戻り値

エラーが発生した場合は -1 が返され、エラーを示すために errno が設定されま す。

エラー

swapon() および swapoff() は共に以下の場合に失敗します:

       [ENOTDIR]

パスの構成要素中にディレクトリ以外のものが含まれていま す。

[ENAMETOOLONG]
パス名の構成要素が 255 文字を越えているか、またはパス 名全体が 1023 文字を越えています。

[ENOENT]
指定したデバイスが存在しません。

[EACCES]
指定されたパスには、検索が許可されていないディレクトリ が含まれています。

[ELOOP]
パス名を変換するときに検出されたシンボリックリンクが多 すぎます。

[EPERM]
スーパユーザ以外のユーザによって呼び出されました。

[EFAULT]
special
引数がプロセスに割り当てられたアドレス空間の外 側を指しています。

加えて、 swapon() は以下の理由で失敗します:

[EINVAL]
システムがブート時のスワップデバイス数 vm.nswapdev の 制限に達しています。

[ENOTBLK]
special
引数はブロックデバイスではありません。

[EBUSY]
special
で指定したデバイスは、すでにスワッピングに使用 できるようになっています。

[ENXIO]
special
のメジャーデバイス番号が範囲外になっています ( これは関連するハードウェアに対応するデバイスドライバが 存在しないことを表します)。

[EIO]
スワップデバイスをオープンする間に入出力エラーが発生し ました。

最後に、 swapoff() は以下の場合に失敗します:

[EINVAL]
現在、システムが special にスワップしていません。

[ENOMEM]
与えられたデバイスのページングとスワッピングを安全に無 効化するための仮想メモリが十分に利用できません。

関連項目

config(8), swapon(8), sysctl(8)

歴史

swapon() システムコールは、 4.0BSD で登場しました。 swapoff() システム コールは、 FreeBSD 5.0 で登場しました。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク