问题标签 [fat32]
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.
c++ - 在 NTFS、FAT、EXT4 上测试写入/读取速度
我必须用 C(或 C++)编写一个程序,Linux
用于测试不同文件系统上的写入和读取速度。我必须确保所有数据都写入磁盘(不在缓存中)。
所以我的第一个问题——我应该使用什么函数来打开一个新文件?我之前使用open
了带参数的函数,O_DIRECT
除了O_SYNC
一件事之外一切都很好 - 编写像 1KB 这样的小文件非常慢,比如 0.01MB/s。
我尝试改用fopen
函数open
,并使用函数fflush
来确保所有数据都直接写入磁盘,并且我首先在FAT32
文件系统上对其进行了测试。在 5 秒内将 1000 个 1KB 的文件写入磁盘(此处为 SD 卡)。大约 0.18MB/s,我认为这是正确的。
现在问题出现在测试EXT4
和NTFS
文件系统时。上EXT4
。1KB 文件的写入速度类似于 12MB/s(错误),在测试 100KB 传输时为 180MB/s(非常错误,我的 SD 卡的传输速率只有 20MB/s)。
我写文件的实际代码如下所示:
仅适用于FAT32
文件系统。第二个代码(之前使用过)如下所示:
适用于所有文件系统,但小文件写入速度极慢。也许我应该为不同的文件系统使用不同的代码?有任何想法吗?
EDIT
:
我发现了为什么写小文件很慢。这是因为fsync
功能,在不同的文件系统上需要不同的时间。我打电话给fsync
每一次写,所以这就是问题所在。
当所有文件都被写入时,有什么方法可以在最后调用它?或者也许每隔几秒钟?我必须使用不同的线程吗?
c++ - 如何在 Qt 应用程序中获取 MAC OS 中驱动器的文件格式?
我正在开发一个应用程序,我需要检查驱动器/SD 卡的文件格式(FAT 32/NTFS 等)并显示它。这个应用程序是一个基于 Qt 的应用程序,我应该在 MAC 和 Windows 上运行。没有 Qt Api 可以让我实现结果,所以只有我采用了这种方法。
这就是我在 Windows 中实现它的方式:
我担心的是,当我在 MAC 机器中连接同一个驱动器/SD 卡时,我找不到可以为我提供文件格式详细信息的 MAC API。请帮忙 :)
c - 如何在 C 中不使用零填充截断 FAT32 文件系统中的文件?
我有 2TB 硬盘包含 FAT32 文件系统的单个分区。使用 将文件截断为更大的大小(例如 100MB 或 200MB ftruncate()
)时,执行零填充需要 5 到 10 秒的时间。有没有什么方法可以缩短文件截断时间或不使用零填充?
c - FAT32:根目录条目
我们正在用 C 语言构建一个 fat32 文件系统操作工具,目前正在尝试访问根目录中的所有条目(位于两个 FAT 表之后)。
第一个问题是:数据区域中的所有根目录条目是否都是连续的?如果不是,给定第一个条目,我们如何访问下一个条目?
它与标签“低簇/高簇”有什么关系,还是我们需要在 FAT 表中查找它(根目录)?
基本上,我们有引导我们进入数据区域的“方程式”。基于此,我们指向集群,但在那之后,我们真的不知道如何在Root Directory中找到下一个条目。
这可能看起来令人困惑,但如果您需要代码片段或更多信息,我会提供它们。
先感谢您。
c++ - 寻找fat32源码
我正在寻找用 C 或 C++ 实现 fat32 的开源代码。我认为在网上很容易找到几个,但它似乎在逃避我。我对 GPL 或任何其他开源许可证没有问题。
macos - 在 OSX 上读取 FAT32 卷 ID
OSX 中是否有用于读取已安装 FAT32 文件系统的卷 ID 的命令?我知道卷 ID 存储在分区的偏移量 67 处。问题是我无法打开设备文件并运行搜索,因为设备已经安装。我只是得到'权限被拒绝'。
file - How can FAT32 store files slightly greater than 4GB when the limit is 4GB?
I understand that the limit is 4GB, so how does this work? I have a file on an FAT32 formatted drive that exceeds 4GB by around 0.2GB, and yet the file works fine and is stored correctly. How does that work? Does it have to do with the file format? I've seen this before, but have never really understood it.
python - 从python中的胖图像中提取文件
我有一个 fat32 分区映像文件转储,例如使用 dd 创建的。我如何用 python 解析这个文件并在这个分区中提取所需的文件。
android - 三星手机的内存类型
我有三星 Galaxy S2。我丢失了手机中的所有数据。我将通过一些软件恢复我的数据,我的问题是手机中使用的内存类型或格式是什么,例如电脑或笔记本电脑,它有 FAT32 或 NTFS,那么三星手机的内存类型是什么。
谢谢
android - Android BUILT-IN SD 设备节点在哪里和 FileSystem 类型?
看这个信息,我的Android设备是更大的Flash,它使用内置的sd卡。我不喜欢它的设备节点,也不知道它的文件系统类型。
和
不能喜欢设备节点。
让我们看看其他没有内置 sd 的设备:
设备节点内置 sd 在哪里?它的文件系统是哪种类型?