STDIO_EXT - Linux手册页
Linux程序员手册 第3部分
更新日期: 2015-03-02
名称
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);
说明
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()函数丢弃流缓冲区的内容。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
__fbufsize(),__fpending(), __fpurge(),__fsetlocking() | Thread safety | MT-Safe race:stream |
__flbf(),__freadable(), __freading(),__fwritable(), __fwriting(),_flushlbf() | Thread safety | MT-Safe |
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。