Главная » 2017 » Ноябрь » 17 » man 2 bdflush
01:19
man 2 bdflush

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


bdflush - запускает, сбрасывает на диск или настраивает службу записи буферов кэша



ОБЗОР


#include <sys/kdaemon.h>

int bdflush(int func, long *address);
int bdflush(int func, long data);



ОПИСАНИЕ


Замечание: Начиная с Linux 2.6, данный системный вызов считается устаревшим и
ничего не делает. Вероятно, он будет удалён в будущих версиях ядра. Сейчас задачу
bdflush() выполняет нить ядра pdflush.

bdflush() запускает, сбрасывает на диск или настраивает службу записи буферов
кэша. Только процесс с определёнными правами (с мандатом CAP_SYS_ADMIN) может
вызвать bdflush().

Если значение func отрицательно или 0, и служба не запущена, то bdflush()
запускает службу и не возвращает управление.

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

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

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

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



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


Если аргумент func отрицателен или равен нулю, и служба запускается успешно, то
bdflush() не возвращает управление. В противном случае при успешном запуске
возвращается ноль, и -1 в случае ошибки, при этом errno устанавливается в
соответствующее значение.



ОШИБКИ


EBUSY Попытка запустить службу, которая уже запущена.

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

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

EPERM Вызывающий процесс не имеет мандата CAP_SYS_ADMIN.



ВЕРСИИ


Начиная с версии 2.23, в glibc удалена поддержка этого устаревшего системного
вызова.



СООТВЕТСТВИЕ СТАНДАРТАМ


Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 555 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar