我需要能够非常快速地创建大量文件,随机大小的 1k-64k 平均 32k。我发现的一种方法是使用 unix 命令dd将字节从 /dev/urandom 复制到新文件中。但是,我试图通过创建指向未分配空间的文件链接来节省时间,而不将随机字节写入磁盘。
这在类 Unix 环境中是否可行,如果可以,我将如何处理?
如果没有,这可以用一个小的 C 程序来完成吗?
我需要能够非常快速地创建大量文件,随机大小的 1k-64k 平均 32k。我发现的一种方法是使用 unix 命令dd将字节从 /dev/urandom 复制到新文件中。但是,我试图通过创建指向未分配空间的文件链接来节省时间,而不将随机字节写入磁盘。
这在类 Unix 环境中是否可行,如果可以,我将如何处理?
如果没有,这可以用一个小的 C 程序来完成吗?
从命令行,mkfile
或dd
任何数量的其他(不一定是 POSIX 标准)实用程序。我会注意到,从而/dev/zero
不是复制/dev/urandom
可以明显更快,尤其是在 CPU 速度较慢的旧系统上。
如果你想用 C 或 C++ 代码做一些事情,有truncate()
和ftruncate()
。可能大多数 Perl/Python/whatever 绑定也以某种方式公开了 system/libc 调用。
所以你想mkfile {size}[b|k|m|g] filename
在cwd?