说明

注意:从Linux 2.6开始,不赞成使用此系统调用,并且不执行任何操作。在将来的内核版本中,它可能会完全消失。如今,bdflush()执行的任务由内核pdflush线程处理。

bdflush()启动,刷新或调整buffer-dirty-flush守护程序。只有特权进程(具有CAP_SYS_ADMIN功能的进程)才能调用bdflush()。

如果func为负数或0,并且没有启动守护程序,则bdflush()输入守护程序代码,并且永不返回。

如果func为1,则一些脏缓冲区将写入磁盘。

如果func为2或更大并且为偶数(低位为0),则address是长字的地址,编号为(func-2)/ 2的调整参数将通过该地址返回给调用方。

如果func为3或更大且为​​奇数(低位为1),则数据为长字,并且内核将编号为(func-3)/ 2的调整参数设置为该值。

参数集,它们的值及其有效范围在Linux内核源文件fs / buffer.c中定义。

版本

从2.23版开始,glibc不再支持此过时的系统调用。

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

名称

bdflush-启动,刷新或调整buffer-dirty-flush守护程序

BDFLUSH - Linux手册页

Linux程序员手册 第2部分
更新日期: 2016-10-08

语法

#include <sys/kdaemon.h>

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

错误说明

EBUSY
在另一个进程已经进入后,试图输入守护程序代码。
EFAULT
您可访问的地址空间之外的地址点。
EINVAL
试图读取或写入无效的参数编号,或向参数写入无效的值。
EPERM
呼叫者不具有CAP_SYS_ADMIN功能。

返回值

如果func为负数或0,并且守护程序成功启动,则bdflush()永不返回。否则,成功时返回值为0,失败时返回-1,并设置errno表示错误。

遵循规范

bdflush()是特定于Linux的,不应在旨在可移植的程序中使用。

另外参见

sync(1),fsync(2),sync(2)

日期:2019-08-20 17:58:35 来源:oir作者:oir