SWAPON(2)

명칭
swapon - 인터리브 페이징 / 스왑용으로 스왑 디바이스를 추가

프로그램 라이브러리
libc

서식
<unistd.h> int swapon(const char *special)

해설
swapon() (은)는, 시스템이 페이징과 부부 교환 파티의 할당에 블록 디바이스 special (을)를 사용할 수 있도록(듯이) 합니다. 잠재적으로 사용할 수 있는 디바이스의 이름은 시스템에 알려져 있어, 시스템 설정시에 정의됩니다. special 의 스왑 area의 사이즈는, 디바이스가 부부 교환 파티에 처음으로 사용할 수 있는 듯 (이)가 될 때 산출됩니다.

반환값
에러가 발생했을 경우는 -1 이 돌려주어져 에러를 나타내기 위해서(때문에) errno 하지만 설정됩니다.

에러
swapon() (은)는, 이하와 같은 경우에 처리를 실패합니다.

[ENOTDIR]
    패스의 원가요소중에 디렉토리 이외의 것이 포함되어 있습니다.

[ENAMETOOLONG]
    패스명의 원가요소가 255 캐릭터를 넘고 있는지, 또는 패스명 전체가 1023 캐릭터를 넘고 있습니다.

[ENOENT]
    지정한 디바이스가 존재하지 않습니다.

[EACCES]
    지정된 패스에는, 검색이 허가되어 있지 않은 디렉토리가 포함되어 있습니다.

[ELOOP]
    패스명을 변환할 경우에 검출된 기호 연결이 너무 많습니다.

[EPERM]
    슈퍼 유저 이외의 유저에 의해 불려 갔습니다.

[ENOTBLK]
    special (은)는 블록 디바이스가 아닙니다.

[EBUSY]
    special 그리고 지정한 디바이스는, 벌써 부부 교환 파티에 사용할 수 있게 되어 있습니다.

[EINVAL]
    special 그리고 설정한 디바이스가, 시스템에 스왑 디바이스로서 설정되어 있지 않습니다.

[ENXIO]
    special 의 메이저 디바이스 번호가 범위외가 되어 있습니다 (이것은 관련하는 하드웨어에 대응하는 디바이스 드라이버가 존재하지 않는 것을 나타냅니다).

[EIO]
    스왑 디바이스를 오픈하는 동안에 입출력 에러가 발생했습니다.

[EFAULT]
    special (은)는, 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

관련 항목
config(8), swapon(8)

버그
팩을 떼어낼 수 있도록(듯이) 하기 위해서 디스크의 부부 교환 파티를 정지하는 방법은 없습니다.

이 호출은, 시스템의 장래의 버젼으로 업그레이드 됩니다.

역사
swapon() 함수 호출은, 4.0BSD 그리고 등장했습니다.