问题标签 [fread]

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 投票
1 回答
2744 浏览

php - iPhone 推送通知 - 错误响应问题

在发送推送通知后检查响应错误时遇到问题。这是我的设置:

从我的 PHP 服务器,我发送推送通知。这些通知以增强格式发送,因此我可以从 Apple 服务器获得错误响应。例如:错误 #7“无效负载大小”。

我检查错误的方法是读取套接字响应:

当存在实际错误时,这可以正常工作。我的问题是:当没有错误时,“fread”调用不会返回任何内容并永远加载。

谁能帮我这个?谢谢你的帮助!

0 投票
1 回答
2751 浏览

c - fread() 基于管道集错误从描述符读取,而不是没有数据的 EOF

我需要用 fread() 从管道的读取端读取内容。

但是,虽然我希望 fread() 在管道中没有任何内容时设置 EOF,但它反而设置了错误指示器。我检查了 posix 和 C 标准,但没有发现任何线索。可能我正在做一些意想不到的事情(阅读,愚蠢),对:)

这是摘录:

0 投票
2 回答
16267 浏览

c - C:使用 fread()/fgets() 而不是 fgetc() 逐行读取文本文件(具有可变长度的行)(块 I/O 与字符 I/O)

是否有getline使用fread(块 I/O)而不是fgetc(字符 I/O)的函数?

通过 .逐字符读取文件会降低性能fgetc。我们认为为了提高性能,我们可以freadgetline. 但是,这会引入超出行尾的潜在不良影响。至少,这将需要实现getline来跟踪文件的“未读”部分,这需要超越 ANSI C FILE 语义的抽象。这不是我们想要自己实现的东西!

我们已经分析了我们的应用程序,性能缓慢与我们通过fgetc. 相比之下,其余的开销实际上是微不足道的。我们总是从头到尾按顺序读取文件的每一行,并且我们可以在读取期间锁定整个文件。这可能使fread-basedgetline更容易实现。

那么,是否存在getline使用fread(块 I/O)而不是fgetc(字符 I/O)的函数?我们很确定它确实如此,但如果不是,我们应该如何实现它?

更新找到了一篇有用的文章,在 C 中处理用户输入,作者是 Paul Hsieh。这是一种fgetc基于 - 的方法,但它对替代方案进行了有趣的讨论(从有多糟糕开始gets,然后讨论fgets):

另一方面,C 程序员(甚至那些被认为有经验的程序员)的共同反驳是,应该使用fgets()作为替代方案。当然,fgets()本身并不能真正处理用户输入。除了有一个奇怪的字符串终止条件(遇到 \n 或 EOF,但不是 \0)之外,当缓冲区达到容量时选择终止的机制是简单地突然停止fgets()操作并 \0 终止它。所以如果用户输入超过了预分配缓冲区的长度,fgets()返回部分结果。处理这个程序员有几个选择;1) 简单地处理被截断的用户输入(当他们提供输入时,无法向用户反馈输入已被截断) 2) 模拟一个可增长的字符数组并通过对fgets()的连续调用来填充它. 第一个解决方案对于可变长度的用户输入几乎总是一个非常糟糕的解决方案,因为缓冲区在大多数情况下不可避免地会太大,因为它试图捕获太多的普通情况,而对于不寻常的情况来说太小了。第二种解决方案很好,只是正确实施可能很复杂。两者都没有处理fgets关于 '\0' 的奇怪行为。

留给读者的练习:为了确定调用fgets()实际读取了多少字节,可以尝试扫描,就像它所做的那样,扫描 '\n' 并跳过任何 '\0' 而不超过传递给fgets()的大小。解释为什么这对于流的最后一行是不够的。ftell()的哪些弱点阻止它完全解决这个问题?

留给读者的练习:通过在每次调用fgets()之间用非零值覆盖整个缓冲区来解决确定fgets()消耗的数据长度的问题。

因此,对于fgets(),我们只能选择编写大量代码并使用与 C 库的其余部分不一致的行终止条件,或者具有任意截止条件。如果这还不够好,那我们还剩下什么?scanf()以一种无法分离的方式将解析与读取混合在一起,并且fread()将读取字符串的末尾。简而言之,C 库让我们一无所有。我们被迫直接基于fgetc()滚动我们自己的。所以让我们试一试。

那么,是否存在getline基于fgets(并且不截断输入)的函数?

0 投票
1 回答
1095 浏览

c - 如何读取二进制文件并将其保存在管道中

我使用下面的代码打开了一个二进制文件fp(该文件包含一个保存的二维数组)并将其放入管道中:

这是将其放入管道的代码吗?

如果我想对数组求和,我该怎么做?

0 投票
1 回答
8100 浏览

c++ - 将浮点数组保存到二进制文件并回读时出现问题(C++)

我试图简单地将浮点值数组写入文件,然后将其读回。
我曾尝试直接从数组中写入它,但是在读回它时,我一直遇到长度大于 153 的数组的问题。为了清楚起见,代码示例一个一个地写入每个浮点值。

对于索引大于或等于 153 的值,它们的值是 153.0,它们应该是 153.0, 154.0, 155.0, ...

为什么这段代码对我不起作用?

谢谢,戴夫

0 投票
3 回答
1842 浏览

c++ - fwrite, fread - fread 的问题

我有以下代码:

它在阅读时崩溃了,第二个问题让我们假设我有像整数、浮点数和 char* 数组这样的结构,我怎样才能轻松地将整个结构写入文件?具有 sizeof 结构的正常 fwrite 不起作用

0 投票
1 回答
1007 浏览

c++ - 读取 PNG 标头的第一个字节时出现奇怪的结果

我正在尝试从 PNG 文件中读取标题。

结果应该是

但是,我得到

我究竟做错了什么?

代码:

0 投票
4 回答
2646 浏览

c - fread 的问题

我正在尝试从文件中一次读取一个字节:

result_new正在变成 0 并且正在打印错误。任何想法可能是错的。我确定pFile很好。

谢谢

0 投票
2 回答
317 浏览

php - PHP、fopen、浏览器兼容性——它是什么

在此页面http://www.effectivewebsolutions.biz/video-spokesmodel.html如果您输入您的 URL,它会通过 fopen 函数打开它并在网站上放置一个视频辐条模型用于演示目的,这里是脚本。

但是在 Safari 中,它只打开网站的文本版本(没有 css 或图像)。在这种情况下,为什么浏览器会有所作为是没有意义的。

有任何想法吗?

0 投票
3 回答
4621 浏览

c - 正确使用 fread

以下功能不起作用,即退出:

我想如果我可以手动将 fread 推到更远的流中,它最终会击中“数据”。

换句话说,我如何增加 fread 以便它跳过字节。

代码示例总是很受欢迎。

谢谢!


编辑 1

基本上我正在解析 iPhone 上的 wav 文件的标题。这给我带来了一些麻烦,我相信这与苹果格式化其音频文件的方式有关。有人建议我在流中运行,直到我得到“数据”,然后从那里继续前进。

我希望这能澄清事情。


编辑 2

这是关于 wav 文件头应该是什么样子的文档,但我想知道苹果格式化他们的方式是否会导致这不准确。

您会注意到“数据”偏移了 36,这是 4 的倍数。