ИМЯ
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 [AT] hsys.ru> 1999