问题标签 [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 投票
3 回答
2872 浏览

c++ - fread 在空值处终止中读。还读取垃圾过去的预期数据

我正在使用 C++ 中的 FILE 对象读取二进制文件的片段。这是 fseek 和相应的 fread 调用:

m_sizeOfData 最终是一个大于 40 万的整数。这似乎应该将二进制文件中的所有 40 万+字节读入数据(顺便说一下,这是一个 char[m_sizeOfData]),但是它在一个看起来像一个盒子的 unicode 字符处大约 6 或 7 个字符后停止。我在想它可能代表一个空终止?我对此并不积极。我正在阅读的每个文件都不是这种情况。大多数似乎(通常)正常工作。

为什么会这样?有没有办法正确读取所有数据?

编辑

fp 定义如下:

这个方框字符(十六进制)是 0x06 后跟 0x00。
数据定义为: char *data = new char[m_sizeOfData];

编辑 2

我还注意到另一个文件的末尾加载了一些垃圾。垃圾看起来像:

ýýýý«««««««««îþ

这是因为它试图完成一定的字节数吗?

0 投票
2 回答
256 浏览

fread - fread 是否需要处理能力/与 DMA 一起使用?

fread 是否需要处理能力/与 DMA 一起工作?

假设文件所在的设备支持 DMA 吗?

0 投票
2 回答
26135 浏览

c - C 编程 ftell fseek fread,读取文件的大小

我有一个文件。我读了文件的大小。然后我一次循环读取两个字节,直到到达文件末尾。每次读取操作后,我将当前位置增加 2,但是在我达到文件大小的一半后位置不会增加,fread 操作将读取 0 个字节。

程序读取文件大小。我执行 fread (每次 2 个字节),直到当前位置等于文件的大小。它读取文件大小的 22915 个字节它在每次读取后将位置增加 2,但是当当前位置达到 11459 时,它是文件大小的一半,它将读取零字节,从而进入无限循环。

0 投票
5 回答
10697 浏览

c - 将数据读入C中的浮点数组

我正在制作一个程序,我需要从文件
103.45
123.45
456.67加载一些格式的浮点数据
......

我想知道如何使用 fread() 将这些数据直接存储到浮点数数组中。我想使用指针并不难,但我对它们不太好。谁能告诉我怎么做

0 投票
1 回答
972 浏览

fread - C ++:使用fread和fwrite循环复制bmp,导致输出bmp被输入bmp中第一个颜色填充

我不知道为什么,但第一个像素(左下角)加载正确,但其他像素不会加载,第一个颜色用于整个图片......

我有这个循环

编辑:

pix 是三个无符号字符(rgb)的结构,加载文件和信息头似乎没问题

0 投票
3 回答
2236 浏览

c++ - _fread_nolock、_fseek_nolock 的预期用途是什么?

我们有一个 C++ 类,它基本上从二进制文件中读取和写入向量。将单个向量加载到内存中的示例读取函数如下所示:

Out 程序使用 OpenMP 进行多线程处理,并且多个线程同时访问同一个文件。为了避免由于多线程导致的问题,我们总是在 OpenMP 关键语句中包含函数调用:

我知道 Microsoft Visual C++ 运行时包含多个函数,如、_fseek_nolock等...例如,该函数被描述为_fread_nolock_fwrite_nolock_fread_nolock()

此函数是 fread 的非锁定版本。它与 fread 相同,只是它不受其他线程的干扰。它可能会更快,因为它不会产生锁定其他线程的开销。仅在线程安全上下文中使用此函数,例如单线程应用程序或调用范围已处理线程隔离的情况。

现在我的问题是:我了解该函数会阻止“重入”调用,因此在其他线程返回之前没有其他线程会进入该函数。但是,我不明白为什么有必要以这种方式保护单个功能。恕我直言,所有访问/修改文件指针(_file在代码示例中)的函数都必须受到保护,因此必须是线程安全的。这需要围绕实际调用标准 C 函数 fseek 和 fread 的整个函数块构建一个锁,所以我看不出提供这种非阻塞函数的意义。

有人可以向我解释这些锁定机制,因为我认为我们的偏执锁定方案会浪费一些性能吗?

先感谢您!

0 投票
2 回答
3784 浏览

c# - AC# 相当于 C 的 fread 文件 i/o

谁能告诉我如何在 C# .NET 版本 2 中以直接方式将字节数组放入结构中?就像 C 中熟悉fread的一样,到目前为止,我在读取字节流和自动填充结构方面没有取得太大成功。unsafe我已经看到一些实现,其中使用关键字在托管代码中存在指针 hocus-pocus 。

看看这个样本:

我有两个构造函数的原因foobarStruct

  • 是否不能有一个空的构造函数。
  • 实例化结构时,将一块内存(作为字节数组)传入构造函数。

该实现是否足够好,或者是否有更清洁的方法来实现这一目标?

编辑:我不想使用 ISerializable 接口或其实现。我正在尝试读取二进制图像以计算出使用的字段并使用 PE 结构确定其数据。

0 投票
4 回答
25596 浏览

python - 什么是 Python 中 Matlab 中的“fread”等价物?

我对 Matlab 几乎一无所知,需要将一些解析例程翻译成 Python。它们用于大文件,它们本身被分成“块”,我从文件顶部的校验和开始就遇到了困难。

Matlab 中到底发生了什么?

fid 是当前正在查看的文件 iBlock 是您在文件中所在的“块”的计数器

magic_l 和 magic_h 稍后与校验和有关,这里是它的代码(直接来自上面的代码):

  • %08X和这些东西是怎么回事hex2dec
  • 另外,为什么要指定3*4而不是12?

真的,我想知道如何[A, count] = fread(fid, 3, 'uint32');在 Python 中复制,io.readline()就像拉文件的前 3 个字符一样。抱歉,如果我在这里的某个地方遗漏了要点。只是io.readline(3)在文件上使用似乎返回了它不应该返回的东西,而且我不明白block_length当它可能很长时它如何适合单个字节。

感谢您阅读本文。我希望你能理解我想知道的那种!(任何见解都值得赞赏。)

0 投票
5 回答
1326 浏览

c++ - 使用 fwrite 转储的文件是否可以跨不同系统移植?

我可以假设使用 fwrite 生成并使用 fread 读取的文件可以跨不同系统移植吗?32 位/64 位 windows、osx、linux。

那么结构呢

这些是便携式的吗?

0 投票
4 回答
3892 浏览

c++ - fwrite 使用包含数组的结构

如何编写包含数组的结构

test.bin 的文件大小是 16 字节,我猜是 (4+8) (int + double*)。文件大小应为 4+10*8 (im on 64bit)

谢谢