问题标签 [io-buffering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
349397 浏览

c++ - 如何刷新 cin 缓冲区?

如何清除 C++ 中的 cin 缓冲区?

0 投票
3 回答
5326 浏览

c++ - 我可以在“\n”上停止 std::cout 刷新吗?

根据这篇文章\n,当 std::cout连接到交互式设备(例如终端窗口)时,它会自动刷新。否则(例如,当通过管道传输到文件时)它将完全缓冲,并且只会在.flush()or上刷新std::endl

有没有办法在 Microsoft Visual C++ 中覆盖此行为,以便我可以选择是完全缓冲模式还是行缓冲模式?

0 投票
5 回答
243 浏览

windows - 操作系统的文件缓冲有害吗?

我为我的同事写了一个下载库。它将下载的数据写入文件。

我的同事发现,即使下载了 100 Mb 的数据,该文件也会长时间保持较小的状态。

所以他们建议我应该flush()在每个之后调用,write()这样它就不会占用内存来缓冲这些数据。

但我认为 100 Mb 的虚拟内存并不多,并且认为 Windows 可能有理由缓冲这么多数据。

你怎么看待这件事?

0 投票
1 回答
3698 浏览

io - Lisp 格式和强制输出

我不明白为什么这段代码在不同的实现中表现不同:

在 CLISP 中,它的行为与预期一样,先打印提示,然后读取,但在 SBCL 中,它先读取,然后输出。我在互联网上阅读了一点并更改了它:

同样,这在 CLISP 中工作正常,但在 SBCL 中它仍然读取,然后输出。我什至尝试将它分成另一个函数:

它仍然读取,然后输出。我没有force-output正确使用还是这只是 SBCL 的特性?

0 投票
10 回答
66464 浏览

perl - 如何在 Perl 中刷新文件?

我有 Perl 脚本,它每 3 秒在现有文件中添加一个新行。此外,还有一个从该文件读取的 C++ 应用程序。

问题是应用程序在脚本完成并且文件句柄关闭后开始读取文件。为了避免这种情况,我想在每行追加后刷新。我怎样才能做到这一点?

0 投票
1 回答
1001 浏览

ruby - 使用 Rack 将网络上传流式传输到套接字

我目前有一个在 FCGI 处理程序中运行的 Sinatra 应用程序。我想编写一个处理程序,它将位于 rackup 文件中(可能在 Sinatra 应用程序的前面),并将通过套接字将大文件上传流式传输到另一台服务器(而不首先在磁盘上缓冲它)并与请求联锁。所以我想做的是某种没有参数准备的流解码发送工作流。我在某处读到这有问题,因为特别是由于 Rails 团队希望看到中间件管道的方式,Rack 中的所有上传都已设为可重绕,这意味着上传将被缓冲,所以不仅我不能提供Rack 中的上传进度,但我还必须在磁盘上缓冲文件,然后将其发送到下游。

是否有一些跨后端解决方案将网络服务器的请求循环与机架响应程序联系起来,并且不强制回退输入(并且不强制上传的内存缓冲,这绝对是愚蠢的疯狂)?目前解决这类问题的方法是什么?

0 投票
2 回答
12479 浏览

ruby - 了解 Ruby 和 OS I/O 缓冲

IO 缓冲在 Ruby 中是如何工作的?IO使用andFile类时,数据多久刷新一次到底层流?这与操作系统缓冲相比如何?需要做些什么来保证给定的数据已经写入磁盘,然后才能自信地读回进行处理?

0 投票
2 回答
134 浏览

java - 在 Java 中的 System.in 上使用 Scanner 进行缓冲

我在 Java 中遇到了 Scanner 的问题。我有一个System.in基于这些数据解析和创建对象的方法。但是如果我Scanner在方法内部创建,我有两种方法可以做到这一点,即关闭和不关闭。在第一种情况下,也Scanner.close()关闭System.in,否则它会提前缓冲,并且它缓冲的字符变得无法从另一个 Scanner 访问。所以现在我将一个Scanner实例传递给方法。但是,如果您需要从控制台读取另一个对象,例如通过BufferedReader. 此外,它似乎不是一个真正干净的设计解决方案。

0 投票
1 回答
2344 浏览

python - 有没有办法找到文件对象的缓冲区大小

我正在尝试“映射”一个非常大的 ascii 文件。基本上我会阅读行,直到找到某个标签,然后我想知道该标签的位置,以便稍后我可以再次寻找它以提取相关数据。

现在这tell并没有给我正确的位置。这个问题以前曾以各种形式提出过。原因大概是因为python正在缓冲文件对象。所以,python 告诉我它的文件指针在哪里,而不是我的文件指针在哪里。 我不想关闭这个缓冲......这里的性能很重要。但是,很高兴知道是否有办法确定 python 选择缓冲多少字节。在我的实际应用中,只要我关闭以 开头的行,Foo就没有关系。我可以在这里和那里写几行。所以,我实际上打算做的是:

有什么办法可以找到缓冲区大小吗?

0 投票
2 回答
1522 浏览

python - open() 的缓冲参数和迭代文件时使用的硬编码预读缓冲区大小有什么区别?

这个问题的启发,我想知道 Pythonopen()函数的可选缓冲参数到底是做什么的。通过查看source,我看到它buffering被传入setvbuf以设置流的缓冲区大小(并且它在没有 的系统上什么也不做setvbuf,文档确认)。

但是,当您遍历文件时,会调用一个常量READAHEAD_BUFSIZE来定义一次读取多少数据(此常量在此处定义)。

我的问题正是这个buffering论点与READAHEAD_BUFSIZE. 当我遍历一个文件时,哪一个定义了一次从磁盘读取多少数据?C 源代码中是否有一个地方可以说明这一点?