Originální popis anglicky:
swapon, swapoff - start/stop swapping to file/device
Návod, kniha: Linux Programmer's Manual
#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 sets the swap area to the file or block device specified by
path.
swapoff stops swapping to the file or block device
specified by
path.
swapon takes a
swapflags argument. If
swapflags has the
SWAP_FLAG_PREFER bit turned on, the new swap area will have a higher
priority than default. The priority is encoded as:
(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
These functions may only be used by a privileged process (one having the
CAP_SYS_ADMIN capability).
Each swap area has a priority, either high or low. The default priority is low.
Within the low-priority areas, newer areas are even lower priority than older
areas.
All priorities set with
swapflags are high-priority, higher than default.
They may have any non-negative value chosen by the caller. Higher numbers mean
higher priority.
Swap pages are allocated from areas in priority order, highest priority first.
For areas with different priorities, a higher-priority area is exhausted
before using a lower-priority area. If two or more areas have the same
priority, and it is the highest priority available, pages are allocated on a
round-robin basis between them.
As of Linux 1.3.6, the kernel usually follows these rules, but there are
exceptions.
On success, zero is returned. On error, -1 is returned, and
errno is set
appropriately.
- EINVAL
- The file path exists, but refers neither to a
regular file nor to a block device.
- ENFILE
- The system limit on the total number of open files has been
reached.
- ENOENT
- The file path does not exist.
- ENOMEM
- The system has insufficient memory to start swapping.
- EPERM
- The caller does not have the CAP_SYS_ADMIN
capability, or all MAX_SWAPFILES (earlier 8; 32 since Linux 2.4.10)
are in use.
These functions are Linux specific and should not be used in programs intended
to be portable. The second `swapflags' argument was introduced in Linux 1.3.2.
The partition or path must be prepared with
mkswap(8).
mkswap(8),
swapoff(8),
swapon(8)