Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 用虚拟数据填充文件的一部分_Perl - Fatal编程技术网

Perl 用虚拟数据填充文件的一部分

Perl 用虚拟数据填充文件的一部分,perl,Perl,我有一个文件,其中包含许多较小文件的数据。我希望这个文件能够一次写入多次(写入文件的不同部分) 我设想的做法是在一个文件中存储许多100MB的文件,并在单个文件中存储这些部分开始和结束位置的引用 我的问题是,向文件追加100MB字节的最佳方式是什么,这样我就可以在通过网络下载时用实际数据覆盖虚拟数据。这样,如果同时开始另一个下载请求,它可以开始添加下一个100MB 有没有比简单地将100MB的0写入文件更好的方法?是否有一种方法可以更有效地扩展为文件分配的磁盘空间(请记住,对于文件的上一个字节,

我有一个文件,其中包含许多较小文件的数据。我希望这个文件能够一次写入多次(写入文件的不同部分)

我设想的做法是在一个文件中存储许多100MB的文件,并在单个文件中存储这些部分开始和结束位置的引用

我的问题是,向文件追加100MB字节的最佳方式是什么,这样我就可以在通过网络下载时用实际数据覆盖虚拟数据。这样,如果同时开始另一个下载请求,它可以开始添加下一个100MB

有没有比简单地将100MB的0写入文件更好的方法?是否有一种方法可以更有效地扩展为文件分配的磁盘空间(请记住,对于文件的上一个字节,当前可能正在写入该文件)?

在某些系统(但可能不是所有系统)上,您可以在文件末尾创建一个具有空空间的大文件

$ perl -e 'open FOO,">/tmp/foo"; seek FOO,1E6,0; print "foo\n"; close FOO'
$ od -c /tmp/foo
0000000  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
*
3641100   f   o   o  \n
3641104