使用stdio(3)时,通常会用到缓冲技术.从而提高整个系统的I/O效率.
Linux中的FILE流有三种基本的饿缓冲模式:
- 全缓冲(“块缓冲”)
- 线形缓冲
- 无缓冲
用于缓冲控制的函数:
1 2 3 4 5 6 7 8 9 |
<span style="color: #339933;">#include<stdio.h></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-定义缓冲操作