swapon

Autres langues

Langue: ja

Version: 2004-10-10 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

̾Á°

swapon, swapoff - ¥Õ¥¡¥¤¥ë/¥Ç¥Ð¥¤¥¹¤Ø¤Î¥¹¥ï¥Ã¥× (swap) ¤ò³«»Ï/Ää»ß¤¹¤ë

½ñ¼°

#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 ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹ (block device) ¤Ë ¥¹¥ï¥Ã¥×Îΰè (swap area) ¤òÀßÄꤹ¤ë¡£ swapoff() ¤Ï path ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤Ø¤Î¥¹¥ï¥Ã¥×¤òÄä»ß¤¹¤ë¡£

swapon() ¤Ï swapflags °ú¤­¿ô¤ò¼è¤ë¡£ swapflags ¤Ë SWAP_FLAG_PREFER ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¿·¤·¤¤¥¹¥ï¥Ã¥×Îΰè¤Ï¥Ç¥Õ¥©¥ë¥È¤è¤ê¤â¹â¤¤ Í¥ÀèÅÙ (priority) ¤ò»ý¤Ä¡£ Í¥ÀèÅÙ¤Ï swapflags ¤Ë°Ê²¼¤Î¤è¤¦¤Ë¥³¡¼¥É²½¤µ¤ì¤Æ¤¤¤ë¡£

(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

¤³¤ì¤é¤Î´Ø¿ô¤ÏÆø¢¥×¥í¥»¥¹ (CAP_SYS_ADMIN ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä¥×¥í¥»¥¹) ¤Î¤ß¤¬»ÈÍѤǤ­¤ë¡£

Í¥ÀèÅÙ

¤½¤ì¤¾¤ì¤Î¥¹¥ï¥Ã¥×Îΰè¤Ï¹â¤¤ (high) ¤ÈÄ㤤 (low) ¤Î¤É¤Á¤é¤«¤Î Í¥ÀèÅÙ¤ò»ý¤Ä¡£¥Ç¥Õ¥©¥ë¥È¤ÎÍ¥ÀèÅÙ¤ÏÄ㤤¡£ Ä㤤ͥÀèÅÙ¤ÎÎΰè¤Ë¤ª¤¤¤Æ¡¢¿·¤·¤¤Îΰè¤Ï¸Å¤¤Îΰè¤è¤ê¤µ¤é¤ËÄ㤤 Í¥ÀèÅÙ¤ò»ý¤Ä¡£

swapflags ¤¬ÀßÄꤵ¤ì¤¿¤â¤Î¤ÏÁ´¤Æ¹â¤¤Í¥ÀèÅ٤Ȥʤꡢ¥Ç¥Õ¥©¥ë¥È¤è¤ê¤â¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä¡£ »ÈÍÑ¼Ô (caller) ¤Ï¤½¤ì¤é¤ËÉé¤Ç¤Ê¤¤Ãͤ¬»ØÄê¤Ç¤­¤ë¡£ Â礭¤Ê¿ô»ú¤Ï¹â¤¤Í¥ÀèÅÙ¤ò°ÕÌ£¤¹¤ë¡£

¹â¤¤Í¥ÀèÅÙ¤ÎÎΰ褫¤é½ç¤Ë¥¹¥ï¥Ã¥×¡¦¥Ú¡¼¥¸ (swap page) ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ ¤è¤êÄ㤤ͥÀèÅÙ¤ÎÎΰè¤ò»ÈÍѤ¹¤ëÁ°¤Ë¤è¤ê¹â¤¤Í¥ÀèÅ٤ΠÎΰè¤ò»È¤¤Àڤ롣¤â¤·Æó¤Ä°Ê¾å¤ÎÎΰ褬Ʊ¤¸Í¥ÀèÅÙ¤ò»ý¤Á¡¢ »È¤¨¤ëÃæ¤Ç°ìÈֹ⤤ͥÀèÅ٤Ǥ¢¤ì¤Ð¡¢¤½¤ì¤é¤Î¥Ú¡¼¥¸¤Ï´Ö¤Ç ¥é¥¦¥ó¥É¡¦¥í¥Ó¥ó (round robin) Êý¼°¤ÇÇÛʬ¤µ¤ì¤ë¡£

Linux 1.3.6 ¤Ë¤ª¤¤¤Æ¡¢¥«¡¼¥Í¥ë¤ÏÄ̾ï¤Ï¤³¤ì¤é¤Îµ¬Â§¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ ¤·¤«¤·Îã³°¤â¸ºß¤·¤Æ¤¤¤ë¡£

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

EBUSY
(swapon() ¤Ë¤ª¤¤¤Æ) »ØÄꤵ¤ì¤¿ path ¤¬´û¤Ë¥¹¥ï¥Ã¥×Îΰè¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£
EINVAL
¥Õ¥¡¥¤¥ë path ¤Ï¸ºß¤¹¤ë¤¬¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤â¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤â»²¾È¤·¤Æ¤¤¤Ê¤¤¡£ ¤Þ¤¿¤Ï swapon() ¤Ë¤ª¤¤¤Æ¡¢»ØÄꤵ¤ì¤¿ path ¤ËÍ­¸ú¤Ê¥¹¥ï¥Ã¥×¤Î½ð̾ (signature) ¤¬¤Ê¤¤¡£ ¤Þ¤¿¤Ï swapoff() ¤Ë¤ª¤¤¤Æ¡¢ path ¤¬¸½ºß¤Î¤È¤³¤í¥¹¥ï¥Ã¥×Îΰè¤Ç¤Ê¤¤¡£
ENFILE
¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ë㤷¤¿¡£
ENOENT
¥Õ¥¡¥¤¥ë path ¤¬Â¸ºß¤·¤Ê¤¤¡£
ENOMEM
¥¹¥ï¥Ã¥×¤ò³«»Ï¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¡¼¤¬¥·¥¹¥Æ¥à¤Ë¤Ê¤¤¡£
EPERM
»ÈÍѼԤ¬ CAP_SYS_ADMIN ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤«¡¢ MAX_SWAPFILES (°ÊÁ°¤Ï 8; Linux 2.4.10 °Ê¹ß¤Ï 32) ¸Ä¤ÎÁ´¤Æ¤Î¥¹¥ï¥Ã¥×¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£

½àµò

¤³¤ì¤é¤Î´Ø¿ô¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï »ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ ÆóÈÖÌܤΠswapflags °ú¤­¿ô¤Ï Linux 1.3.2 ¤«¤éƳÆþ¤µ¤ì¤¿¡£

Ãí°Õ

¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (partition) ¤ä¥Ñ¥¹¤Ï mkswap(8) ¤Ë¤è¤Ã¤Æ½àÈ÷¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

´ØÏ¢¹àÌÜ

mkswap(8), swapoff(8), swapon(8)