属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
__fbufsize(),__fpending(),
__fpurge(),__fsetlocking()
Thread safetyMT-Safe race:stream
__flbf(),__freadable(),
__freading(),__fwritable(),
__fwriting(),_flushlbf()
Thread safetyMT-Safe

名称

fbufsize,flbf,__ fpending,__ fpurge,__ freadable,__ freading,__ fsetlocking,__ fwritable,__ fwriting,_flushlbf-stdio FILE结构的接口

语法

#include <stdio.h>
#include <stdio_ext.h>

size_t __fbufsize(FILE *stream);
size_t __fpending(FILE *stream);
int __flbf(FILE *stream);
int __freadable(FILE *stream);
int __fwritable(FILE *stream);
int __freading(FILE *stream);
int __fwriting(FILE *stream);
int __fsetlocking(FILE *stream, int type);
void _flushlbf(void);
void __fpurge(FILE *stream);
STDIO_EXT - Linux手册页

Linux程序员手册 第3部分
更新日期: 2015-03-02

出版信息

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

另外参见

flockfile(3),fpurge(3)

说明

Solaris引入了例程,以允许可移植地访问FILE结构的内部,而glibc也实现了这些例程。

__fbufsize()函数返回给定流当前使用的缓冲区的大小。

__fpending()函数返回输出缓冲区中的字节数。对于宽流,单位是宽字符。在读取模式下的缓冲区上未定义此功能,或者打开了只读功能。

如果流是行缓冲的,则__flbf()函数返回非零值,否则返回零。

如果流允许读取,则__fread()函数返回非零值,否则返回零。

如果流允许写入,__fwritable()函数将返回非零值,否则返回零。

如果流是只读的,或者流上的最后一个操作是读取操作,则__freading()函数返回一个非零值,否则返回零。

如果流仅写(或仅追加),或者流上的最后一个操作是写操作,则__fwriting()函数将返回非零值,否则返回零。

__fsetlocking()函数可用于选择所需的流锁定类型。它返回当前类型。 type参数可以采用以下三个值:

FSETLOCKING_INTERNAL
对给定流上的每个操作执行隐式锁定(* _unlocked操作除外)。这是默认值。
FSETLOCKING_BYCALLER
调用者将负责锁定(如果有多个线程,则可能使用flockfile(3)),并且stdio例程在状态重置为FSETLOCKING_INTERNAL之前不会进行锁定。
FSETLOCKING_QUERY
不要更改锁定类型。 (仅退还。)

_flushlbf()函数刷新所有行缓冲流。 (大概是为了强制输出到终端,例如在读取键盘输入之前。)

__fpurge()函数丢弃流缓冲区的内容。

日期:2019-08-20 18:01:22 来源:oir作者:oir