cin.tie(NULL);
当我们写它实际上 untiescout
和cin
时,我们必须手动刷新cout
或当缓冲区已满时。
我不能在这里得到缓冲的概念。
在 C ++ 中缓冲是什么意思?
缓冲区是一个通用术语,指的是用作临时占位符的内存块。您可能会在计算机中遇到该术语,该术语使用 RAM 作为缓冲区,或者在视频流中遇到该术语,在视频流中,您正在将电影的一部分下载到设备中以保持在观看之前。计算机程序员也使用缓冲区。
编程中的数据缓冲器
在计算机编程中,可以在处理数据之前将其放置在软件缓冲区中。由于将数据写入缓冲区比直接操作快得多,因此在使用 C 和 C 进行编程时使用缓冲区非常有意义,并加快了计算过程。当接收到的数据速率与处理数据的速率之间存在差异时,缓冲区会派上用场。
缓冲区与缓存
缓冲区是对正在送往其他介质的数据的临时存储,或者是对可以在按顺序读取之前进行非顺序修改的数据的存储。它试图减少输入速度和输出速度之间的差异。缓存也充当缓冲区,但它存储预期要读取多次的数据,以减少访问较慢存储的需要。
如何在 C ++ 中创建缓冲区
通常,当您打开文件时,会创建一个缓冲区。当您关闭文件时,缓冲区将被刷新。在 C++ 中工作时,您可以通过以下方式分配内存来创建缓冲区:
char* buffer = new char[length];
当你想释放分配给缓冲区的内存时,你可以这样做:
delete[ ] buffer;
注意:如果您的系统内存不足,缓冲的好处就会受到影响。此时,您必须在缓冲区的大小和计算机的可用内存之间找到平衡。
Source:https://www.thoughtco.com/definition-of-buffer-p2-958030要了解Write Buffer
,我们必须首先知道它为什么存在。
为什么写缓冲?
将文件写入磁盘是high I/O traffic process
。对于慢速磁盘来说,这是昂贵的。
对于要写入的简单文件系统,它涉及multiple I/Os
(读 / 写索引节点,读 / 写数据位图,写磁盘块...)
可以在没有缓冲区的情况下进行写入,如果文件系统写入可以更有效并且与写入 ram 一样快,那么我们可能不需要写入缓冲区。
为了克服high cost of I/Os
,将其写入缓冲区可以reduce I/O traffic
:
延迟写入,所以文件系统可以批量更新,
以避免一些 I / O,例如同时创建和删除文件,因为大多数 fs 缓冲区在某个间隔之间将缓冲区保留在内存中,因此可以避免在间隔之间创建和删除任何内容。
这也意味着你可以通过调用手动刷新缓冲区fsync
或让文件系统批量更新它,但有一个缺点,如果你的系统在那个时间间隔,你的数据丢失。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(13条)