问题标签 [fallocate]
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 - 如何在 Linux 中用 C 语言快速创建大文件?
跟随这个问题: 如何在 C 中快速创建大文件?
我记得 4-5 年前,我能够fallocate
在 Linux 中使用 shell 实用程序来创建没有孔/间隙的文件。
磁盘文件系统是 ext3、ext4 或 xfs。
当时,fallocate
shell 实用程序在不到一秒的时间内创建了 8 GB 的文件。我不记得文件是否充满零或随机。
我现在尝试复制它,但它似乎创建了带有孔/间隙的文件。
我想知道这是如何用C
语言完成的?
- 一些仅适用于 Linux 的内核调用?
- 一些内核调用在规范中有错误,后来被修复?
- 一些不再可用的内核调用?
python - 在 Python 中为文件预分配磁盘空间而不改变其大小
我正在编写一个程序,它可以从多个不同的服务器一次下载多个文件(当然,每个服务器一个下载线程!)。我担心磁盘上同时增长的多个文件会导致磁盘碎片,我想通过Content-Length
在开始下载之前为整个文件的长度(如标题所报告的)预先分配磁盘空间来缓解这种情况,理想情况下不增加文件的表观长度(所以我可以通过以附加模式打开部分下载的文件来恢复失败的下载)。
这可能以独立于平台的方式吗?
memory-management - 使用 Fortran 90 将 txt 文件读入可分配数组时出现错误结果
我正在尝试解决与保留值相关的问题,当我在下面显示的代码(fortran)中使用 de/allocate 时,制作了一个复制数组,但问题仍然存在。我已经看到与该主题相关的链接:
如果我知道数组维度(来自 txt 文件的输入),这将很容易并且没有意义(出于此代码的目的)。
可能我犯了一些错误(其中一个很明显:分钟尺寸与预期的总尺寸)。如果有人指定它们,我将不胜感激。尽管如此,我还是不明白如何制作一个复制数组来解决这个问题,因为我需要取消/分配临时变量和主变量。
那么,是否可以使用重新分配(取消/分配)来读取没有“可变维度”信息的 txt?
这就是代码(使用 f90):
(我知道实现相同目标的更好方法,这只是加深练习)
我使用这个数据示例(来自 txt):
结果是这样的:
-2144186072 1 -2144186072 1 25 0 35 40 45 50
c++ - macOS 中未声明的标识符 posix_fallocate() 和 fallocate(),clang 12.00
我尝试在我的 CPP 程序中使用fallocate()
orposix_fallocate()
函数,但我的编译器一直告诉我,它找不到该函数。所以我创建了这个最小的程序:
但是当我试图编译它时,我的编译器告诉我:
如您所见,我使用的是 c++20。我用 Catalina 和 clang 在我的 Mac 上试过这个。它在我尝试过的 Linux shell 上运行良好。
为什么会这样,有没有办法fallocate()
在 Mac 上工作?
mysql - 关于Mysql文件打孔,何时以及如何报“no space left”错误?
我学习了Mysql的压缩机制,它利用现代文件系统的打孔特性,作为这里的官方文档。
我想知道的是,Mysql 在写入孔但没有物理块时如何处理?
例如,当 Mysql 写入一个 16KB 的页面时,它会将其压缩到 3KB,这需要一个 4KB 的文件系统块。16KB 的页面在存储时仍然占用 16KB 的文件系统地址空间,这将在 'ls' 命令中处理,而仅分配一个 4KB 的 physicle 块,将在“du”命令中处理。其他 12KB 实际上是打孔的,不需要真正的文件系统块。在此之后,空闲文件系统块可能已用完。此时,16KB 的页面被加载、更新并重新压缩到 5KB,现在需要 2 个文件系统块。虽然第二个块是孔,但在刷新到磁盘时需要分配新块。但是,文件系统中没有用于分配的块,所以文件系统会报“no space”错误。Mysql 将如何处理此类错误?
c - linux fallocate FALLOC_FL_KEEP_SIZE 文件关闭后如何影响文件?
linux 调用
可用于在文件结束后为文件预分配空间而不增加文件长度。(正确的?)
问题:当 fd 关闭时,这个磁盘空间会发生什么?是否释放了额外的空间,或者它是否仍然与文件相关联?
如果它仍然与文件关联,我如何释放该空间?截断(或 open() 和 ftruncate())是否释放空间?