이 름
swapon, swapoff − 파 일 /디 바 이 스 로 스 와 핑 시 작 /끝 내 기
사 용 법
#include
<unistd.h>
#include <asm/page.h> /* to find 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 비 트 를 가 지 면 , 새 로 운 스 왑 영 역 이 디 폴 트 보 다 더 높 은 우 선 권 을 가 진 다 . 선 행 권 은 아 래 와 같 이 인 코 딩 된 다 :
(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
이 러 한 함 수 는 슈 퍼 유 저 만 이 사 용 할 수 있 다 .
PRIORITY
각 각 의 스 왑 영 역 은 높 던 낮 던 우 선 권 을 가 지 고 있 다 . 디 폴 트 는 ’낮 음 ’이 다 . 낮 은 우 선 권 영 역 에 서 새 영 역 은 이 전 영 역 보 다 낮 은 우 선 권 을 갖 는 다 .
swapflags 으 로 설 정 된 모 든 우 선 권 은 상 위 우 선 권 이 다 . 그 들 은 호 출 자 에 의 해 골 라 진 음 수 가 아 닌 값 을 갖 는 다 . 높 은 번 호 는 높 은 우 선 권 을 말 한 다 .
스 왑 페 이 지 는 우 선 권 순 서 대 로 영 역 으 로 부 터 할 당 된 다 , 제 일 높 은 우 선 권 이 처 음 . 서 로 다 른 우 선 권 을 가 지 고 있 기 때 문 에 , 낮 은 우 선 권 영 역 을 쓰 기 전 에 높 은 우 선 권 영 역 은 고 갈 된 다 . 두 개 이 상 의 영 역 이 같 은 우 선 권 을 가 지 고 있 고 , 제 일 높 은 우 선 권 이 가 능 하 다 면 , 페 이 지 는 그 들 사 이 의 round-robin basis에 할 당 된 다 .
리 눅 스 1.3.6의 경 우 와 같 이 커 널 은 이 법 칙 을 따 른 다 , 하 지 만 예 외 는 있 다 .
반 환 값
성 공 시 0이 반 환 되 고 , 에 러 시 −1이 반 환 된 다 . errno 은 적 절 히 설 정 된 다 .
에 러
Many other errors can occur if path 가 효 력 이 없 으 면 , 많 은 다 른 에 러 들 이 생 길 수 있 다 .
EPERM |
사 용 자 가 슈 퍼 유 저 가 아 니 다 혹 은 MAX_SWAPFILES (defined to be 8 in Linux 1.3.6) 이 상 이 사 용 되 고 있 다 . | ||
EINVAL |
는 path 가 존 재 하 지 만 정 규 경 로 나 블 록 디 바 이 스 가 없 는 경 우 반 환 된 다 . | ||
ENOENT |
는 path 가 없 을 때 반 환 된 다 . | ||
ENOMEM |
는 스 와 핑 을 하 기 에 충 분 치 못 한 메 모 리 밖 에 없 을 때 반 환 된 다 . |
호 환
이 함 수 는 리 눅 스 에 서 특 화 되 었 다 . 이 식 을 목 적 으 로 하 는 프 로 그 램 에 서 는 사 용 해 서 는 안 된 다 . 두 번 ’swapflags’ 독 립 변 수 는 리 눅 스 1.3.2에 서 소 개 되 었 다 .
주 의
The partition or path must be prepared with mkswap(8).