使用自定义缓冲区读取文件

时间:2016-08-30 11:45:49

标签: c++ c++11 io buffer read-write

我目前正在摆弄raspberry pi gpio,其访问文件位于/sys/class/gpio/目录中。一旦输出了正确的引脚,我们就可以读取和写入相应的gpio文件。

既然这些文件一次只包含0或1,那么通过pubsetbuf提供自定义缓冲区会在这里调用一个不错的选择吗?电话看起来像 -

file.rdbuf()->pubsetbuf(buf, sizeof buf);

我读取缓冲区适用于大读/写,因为如果缓冲区大小与所需的读/写匹配,它可以提供较少的系统调用和较少的读/写次数。但是,由于这里有大量读/写的可能性,只有0 / 1会被写入相应的文件,不会在这里有一个大的(默认)缓冲区吗?< / p>

我应该将缓冲区和大小设置为nullptr0以进行直接读/写或某些相应大小的0 / 1字符,以便缓冲发生但仅限于单个字符,这是令人困惑的,因为它的意思与第一个选择相同?或者我应该保持缓冲区大小不变,甚至不接触此功能?

另外,如果我尝试将01表示为整数,那么我的缓冲区应该是什么类型的大小?目前我正在使用没有pubsetbuf调用的字符串数据类型,因此从未想过这一点。

PS - 我只是想学习c ++和linux的内部工作原理,所以我没有试验一些可能会使事情恶化的实际应用:p。

0 个答案:

没有答案