我目前正在摆弄raspberry pi gpio,其访问文件位于/sys/class/gpio/
目录中。一旦输出了正确的引脚,我们就可以读取和写入相应的gpio文件。
既然这些文件一次只包含0或1,那么通过pubsetbuf
提供自定义缓冲区会在这里调用一个不错的选择吗?电话看起来像 -
file.rdbuf()->pubsetbuf(buf, sizeof buf);
我读取缓冲区适用于大读/写,因为如果缓冲区大小与所需的读/写匹配,它可以提供较少的系统调用和较少的读/写次数。但是,由于这里有大量读/写的可能性,只有0
/ 1
会被写入相应的文件,不会在这里有一个大的(默认)缓冲区吗?< / p>
我应该将缓冲区和大小设置为nullptr
和0
以进行直接读/写或某些相应大小的0
/ 1
字符,以便缓冲发生但仅限于单个字符,这是令人困惑的,因为它的意思与第一个选择相同?或者我应该保持缓冲区大小不变,甚至不接触此功能?
另外,如果我尝试将0
和1
表示为整数,那么我的缓冲区应该是什么类型的大小?目前我正在使用没有pubsetbuf
调用的字符串数据类型,因此从未想过这一点。
PS - 我只是想学习c ++和linux的内部工作原理,所以我没有试验一些可能会使事情恶化的实际应用:p。