bdflush(2)

НАИМЕНОВАНИЕ
bdflush - запускает, сбрасывает на диск или настраивает службу записи буферов кэша

ОБЗОР
#include <sys/kdaemon.h>

[[deprecated]] int bdflush(int func, long *address);
[[deprecated]] 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.

СТАНДАРТЫ
Linux.

ИСТОРИЯ
Начиная с glibc 2.23, glibc больше не поддерживает этот устаревший системный вызов.

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

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Artyom Kunyov <artkun@guitarplayer.ru>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy Ovchinnikov <dmitriyxt5@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, ITriskTI <ITriskTI@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).