RIO 带缓冲的输入函数

通常一个文本行是一个换行符结尾的ASCII码字节系列。在unix系统中,换行符”\n”ASCII(LF),数字值(0x0a),
如何检测一个文本行的长度:
1 使用read函数 一次一个字节地从文件中传送到用户存储器中,当检测到换行符时,文本行读取完毕,这种方法的缺点:每读取一个字节都要调用内核
2 使用RIO带缓冲的读取函数(rio_readlineb),它先从一个内部读缓冲区copy一个文本行,当缓冲区变空时,再次调用read函数重新将缓冲区填满,对于既包含文本行也包含二进制数据文件,RIO提供一个rio_readn带缓冲区的版本。
void rio_readinitb(rio_t *rp, int fd);


ssize_t rio_readlineb(rio_t *rp ,void *usrbuf,size_t maxlen);
ssize_r rio_readnb(rio_t *rp,void *usrbuf,size_t n);
函数简介:


1 调用rio_readinitb函数,它的功能是将文件描述符fd和地址rp进行关联。
2 rio_readlineb函数的功能从文件rp读出一个文本行(包含文本换行符),将文本行copy到usrbuf,并且用null字符来结束这个文本行,rio_readlineb一次最多可以读maxlen-1个字节。
3 rio_readnb函数从文件rp最多读n个字节到存储器usrbuf中。

相关阅读:
read函数读取文件