Developer's Daily | Unix by Example |
main | java | perl | unix | dev directory | web log |
swapon, swapoff ? start/stop swapping to file/device |
#include <unistd.h> int swapon(const char *path, int
swapflags); |
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 the super-user. |
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. |
Many other errors can occur if path is not valid. |
EPERM |
The user is not the super-user, or more than MAX_SWAPFILES (defined to be 8 in Linux 1.3.6) are in use. |
|
EINVAL |
is returned if path exists, but is neither a regular path nor a block device. |
|
ENOENT |
is returned if path does not exist. |
|
ENOMEM |
is returned if there is insufficient memory to start swapping. |
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), swapon(8), swapoff(8) |