int swapon(const char *path, int swapflags); int swapoff(const char *path);
ОПИСАНИЕ
swapon
устанавливает область файла или блочного устройства для подкачки данных
и присваивает ей имя
path.
swapoff
прекращает подкачку данных в файл или блочное устройство
path.
У функции
swapon
есть параметр
swapflags.
Если в
swapflags
установлен бит
SWAP_FLAG_PREFER,
то новая область подкачки будет иметь приоритет, больший, чем используемый
по умолчанию.
Приоритет рассчитывается следующим образом:
Эти функции могут задаваться только суперпользователем.
ПРИОРИТЕТ
Каждая область подкачки имеет свой приоритет, высокий или низкий.
По умолчанию задается низкий приоритет.
Новые области имеют еще меньший приоритет, чем старые.
Все приоритеты, установленные с помощью
swapflags,
являются выше используемого по умолчанию.
Приоритет может быть любым неотрицательным числом
(это определяется вызывающей программой).
Большее число соответствует большему приоритету.
Страницы памяти, попадающие в область подкачки, располагаются
в этих областях по убыванию их приоритета.
Если приоритеты различаются, то сначала полностью заполняются
области с большим приоритетом.
Если две области имеют одинаковый приоритет, и это наибольший
приоритет из свободных, страницы распределяются
между данными областями по "карусельному" принципу.
В Linux 1.3.6 работа ядра обычно следует этим правилам,
но существуют исключения.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
При удачном завершении возвращается 0. При ошибке возвращается
-1, а переменной
errno
присваивается номер ошибки.
НАЙДЕННЫЕ ОШИБКИ
Ошибки, которые могут возникнуть, перечислены ниже;
но учтите: если параметр
path
задан неправильно, Вы не застрахованы от возникновения и других ошибок.
EPERM
Пользователь не является суперпользователем, или превышен
лимит количества областей подкачки
MAX_SWAPFILES
(8 по умолчанию в Linux 1.3.6) уже используются.
EINVAL
path
существует, но это не файл и не блочное устройство.
ENOENT
path
не существует.
ENOMEM
не хватает памяти ядра для начала процесса подкачки.
СООТВЕТСТВИЕ СТАНДАРТАМ
Эта функция предназначена только для работы в Linux.
Второй параметр `swapflags' впервые появился в Linux 1.3.2.
ЗАМЕЧАНИЯ
Раздел или файл должны быть подготовлены к подкачке
при помощи
mkswap(8).