问题标签 [buffered]

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 投票
16 回答
332994 浏览

python - 禁用输出缓冲

Python 的解释器中是否默认启用输出缓冲sys.stdout

如果答案是肯定的,那么禁用它的所有方法是什么?

到目前为止的建议:

  1. 使用-u命令行开关
  2. 包裹sys.stdout在每次写入后刷新的对象中
  3. 设置PYTHONUNBUFFERED环境变量
  4. sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

有没有其他方法可以在执行期间以编程方式在sys/中设置一些全局标志sys.stdout

0 投票
5 回答
3394 浏览

c - 如何缓冲非阻塞 IO?

当我在阻塞文件描述符上需要缓冲 IO 时,我使用 stdio。但是如果我根据手动stdio缓冲将文件描述符变为非阻塞模式是不可用的。经过一些研究,我发现 BIO 可用于缓冲非阻塞 IO。

但可能还有其他选择吗?

我需要这个来避免在多连接环境中使用线程。

0 投票
5 回答
5080 浏览

java - 缓冲与非缓冲,使用哪一个?

如果这是重复的,我很抱歉,但我无法找到每种类型的最佳实践的明确答案。

我想知道定义何时使用 BufferedReader 与 FileReader 或 BufferedInput/OutputStream 与 FileInput/OutputStream 的适当条件是什么?是否有某种公式总能告诉你什么是合适的?

我应该总是使用缓冲吗?

谢谢

0 投票
5 回答
14789 浏览

c - 在 C 中搜索二进制模式(读取缓冲的二进制文件)

嘿。我正在尝试编写一个小程序,它将在最后一次出现“0xFF 0xC0 0x00 0x11”之后读取以下四个字节,这些字节可以轻松转换为二进制或十进制。目的是最后一次出现该十六进制模式之后的 2-5 个字节表示 JPEG 文件的宽度和高度。

问题是我不知道如何递归地从缓冲内存中读取并使用最近读取的变量作为 int 来与我的二进制/十六进制/十进制进行比较。

我该怎么做呢?

0 投票
3 回答
12443 浏览

java - 在Java中处理文件指针的有效方法?(将 BufferedReader 与文件指针一起使用)

我有一个每秒更新一次的日志文件。我需要定期读取日志文件,一旦我进行读取,我需要将文件指针位置存储在我读取的最后一行的末尾,并且在下一次定期读取时我应该从该点开始。

目前,我正在使用 Java 中的随机访问文件,并使用getFilePointer()获取偏移值的seek()方法和到达偏移位置的方法。

但是,我已经阅读了大多数文章,甚至是 Java 文档建议,BufferredReader用于有效读取文件。如何使用 a 来实现这一点(获取文件指针并移至最后一行)BufferedReader,或者是否有任何其他有效的方法来完成此任务?

0 投票
1 回答
530 浏览

linux - Linux/Unix I/O 类型

我要介绍一下Linux/Unix I/O:文件 I/O、标准 I/O、缓冲/非缓冲 I/O 和格式化/非格式化 I/O

我不确定如何订购这些类型的 I/O 才有意义。

这是我的尝试:

  • 文件输入/输出
    • 无缓冲 I/O
    • 缓冲 I/O
      • 标准输入/输出
      • 格式化/未格式化的 I/O

它是否正确 ??

无论如何谢谢

0 投票
3 回答
49686 浏览

java - 带空行的缓冲阅读器 readLine()

我正在使用缓冲阅读器从文本文件中一次抓取一行。我正在尝试使用跟踪整数从文本文件中获取行号。不幸的是, BufferedReader正在跳过空行(仅包含/n或回车的行)。

有没有更好的方法来解决这个问题?使用扫描仪有用吗?

示例代码:

0 投票
1 回答
16955 浏览

stdout - 默认情况下,stdout 行是缓冲的、无缓冲的还是不确定的?

部分声明7.9.13/7c99

在程序启动时,预定义了三个文本流并且不需要显式打开 - 标准输入(用于读取常规输入)、标准输出(用于写入常规输出)和标准错误(用于写入诊断输出)。

最初打开时,标准错误流没有完全缓冲;当且仅当可以确定流不引用交互式设备时,标准输入和标准输出流才被完全缓冲。

所以这是有道理的。如果您将标准输出推送到文件,您希望它完全缓冲以提高效率。

但是当您无法确定设备是非交互式的(即,正常输出到终端)时,我在标准中没有提到输出是行缓冲的还是非缓冲的。

我问的原因是对我的回答的评论fflush(stdout);我应该在这两个语句之间插入一个:

因为我没有printf用换行符终止。任何人都可以清除这个吗?

0 投票
4 回答
7247 浏览

c++ - 客户端套接字发送数据,但服务器套接字不接收它们。c ++缓冲流?

我正在从事一个合作伙伴提供服务作为套接字服务器的项目。我编写客户端套接字来与之通信。通信有两种方式:我向服务器发送请求,然后从服务器接收响应。

问题是我将数据发送到服务器,但显然服务器无法接收数据。

就我而言,我只是使用非常简单的实现,就像http://www.linuxhowtos.org/C_C++/socket.htm中的示例

似乎服务器套接字是通过对 std::iostream 的“绑定”实现的,它是缓冲流。(即套接字发送/接收在 iostream::write/read 中完成。)

顺便说一句,我从我的合作伙伴那里得到了一个测试客户端,它也包含在一个 iostream 中。测试套接字客户端可以毫无问题地与服务器通信,但它必须在每次套接字发送后执行 iostream::flush() 。

但我想保持简单,不要将我的套接字客户端包装在 iostream 中。

我只是想知道缓冲的 iostream 是否会导致问题:数据没有被处理,因为客户端套接字发送的数据量很小并且仍然被缓冲。

或者可能是我的问题?我怎么知道我是否真的发送了数据?我的客户端套接字是否也缓冲数据?

我已经尝试了一些使用TCP_NODELAY的“坏”解决方法,但它没有帮助!

我该如何解决这个问题?从客户端?还是服务器端?我应该在发送请求后和接收响应之前关闭套接字,以便“刷新”并处理数据吗?

或者我应该将我的套接字包装在 iostream 中并进行刷新?

或者服务器套接字应该使用“无缓冲”流?

感谢您的任何建议和建议!

0 投票
1 回答
929 浏览

php - 使用 PHP 进行流式打印

我编写了一个 PHP 脚本,它向搜索引擎发出请求,访问提供的结果,从结果中提取一些细节,然后以更有用的形式打印出来。

这一切都很好,但我偶然发现的是,在等待数据流式传输时调用 echo 或 print 可能会导致输出也被流式传输。具体来说,有多页结果,所以我访问第一页,读入并重新打印内容,然后转到下一页,在等待下一页加载时,前一页的内容在浏览器。

我不明白为什么这种情况如此不一致。有时在移动到下一页之前会打印一页,有时更少,有时更多。然后当我之后做基本相同的事情(在每个结果指向的页面中读取)时,输出几乎没有流式传输,每分钟左右重新绘制一次。

file_get_contents($url)用来检索内容,并调用一个函数echo来打印到目前为止已经加载的内容。这种流式打印行为是浏览器的一项功能并且独立于我用 PHP 编写的内容吗?如果不是,如何更好地控制?