最新消息:

Linux Socket 学习笔记18-定义缓冲操作

C/C++ admin 2880浏览 0评论

使用stdio(3)时,通常会用到缓冲技术.从而提高整个系统的I/O效率.

Linux中的FILE流有三种基本的饿缓冲模式:

  • 全缓冲(“块缓冲”)
  • 线形缓冲
  • 无缓冲

用于缓冲控制的函数:

1
2
3
4
5
6
7
8
9
<span style="color: #339933;">#include&lt;stdio.h&gt;</span>

<span style="color: #993333;">int</span> setbuf<span style="color: #009900;">(</span>FILE <span style="color: #339933;">*</span>stream<span style="color: #339933;">,</span><span style="color: #993333;">char</span> <span style="color: #339933;">*</span>buf<span style="color: #009900;">)</span><span style="color: #339933;">;</span>

<span style="color: #993333;">int</span> setbuffer<span style="color: #009900;">(</span>FILE <span style="color: #339933;">*</span>stream<span style="color: #339933;">,</span><span style="color: #993333;">char</span> <span style="color: #339933;">*</span>buf<span style="color: #339933;">,</span>size_t size<span style="color: #009900;">)</span><span style="color: #339933;">;</span>

<span style="color: #993333;">int</span> setlinebuf<span style="color: #009900;">(</span>FILE <span style="color: #339933;">*</span>stream<span style="color: #009900;">)</span><span style="color: #339933;">;</span>

<span style="color: #993333;">int</span> setvbuf<span style="color: #009900;">(</span>FILE <span style="color: #339933;">*</span>stream<span style="color: #339933;">,</span><span style="color: #993333;">char</span> <span style="color: #339933;">*</span>buf<span style="color: #339933;">,</span><span style="color: #993333;">int</span> mode<span style="color: #339933;">,</span>size_t size<span style="color: #009900;">)</span><span style="color: #339933;">;</span>

setvbuf中mode的取值有:

_IOFBF:全缓冲

_IOLBF:线形缓冲

_IONBF:无缓冲

转载请注明:爱开源 » Linux Socket 学习笔记18-定义缓冲操作

您必须 登录 才能发表评论!