BDFLUSH(2)

ИМЯ
bdflush - запустить, активизировать или настроить демона записи буферов кэша

ОБЗОР
int bdflush(int func, long *address);
int bdflush(int func, long data);

ОПИСАНИЕ
bdflush запускает, активизирует или настраивает демона записи буферов кэша. Системный вызов bdflush может быть выполнен только суперпользователем root.

Если аргумент func отрицателен или равен нулю, а демон ещё не был запущен, то bdflush запускает демона и не возвращает управления.

Если аргумент func равен 1, то некоторые "грязные" (dirty) буфера записываются на диск.

Если аргумент func равен двум или более, и является чётным числом (младший бит равен нулю), то аргумент address является адресом в виде длинного слова, и по этому адресу возвращается для вызываюшего процесса параметр настройки с номером (func-2)/2.

Если аргумент func равен трём или более и является нечётным числом (младший бит равен единице), то аргумент data является длинным словом, и ядро устанавливает в это значение параметр настройки с номером (func-3)/2.

Набор параметров и разрешённых диапазонов их значений определяется в файле fs/buffer.c в исходных текстах ядра.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Если аргумент func отрицателен или равен нулю, и демон запускается успешно, то bdflush не возвращает управление. В противном случае возвращается ноль в случае успеха, а -1 -- в случае ошибке, при этом errno устанавливается в соответствующее значение.

ОШИБКИ

EPERM
    Вызвавший не является суперпользователем.

EFAULT
    address указывает за пределы доступного адресного пространства.

EBUSY
    Попытка запустить демона, который уже запущен.

EINVAL
    Попытка прочитать или записать параметр с неверным номером, или записать неверное значение.

СООТВЕТСТВИЕ СТАНДАРТАМ
bdflush является специфичным для Linux и не должен использоваться в программах, которые должны быть переносимы.

СМОТРИ ТАКЖЕ
fsync(2), sync(2), update(8), sync(8).

ПЕРЕВОД
Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999