当前位置: 首页 > 面试题库 >

使用mmap增加文件的大小

易衡
2023-03-14
问题内容

在Windows上的Python中,我可以通过创建一个大文件

    from mmap import mmap
    f = open('big.file', 'w')
    f.close()
    f = open('big.file', 'r+')
    m = mmap(f.fileno(), 10**9)

现在big.file大约是1 GB。但是,在Linux上,这将返回ValueError: mmap length is greater than file size

有没有办法在Linux上获得与Windows相同的行为?也就是说,能够使用mmap?来增加文件的大小。


问题答案:

至少在POSIX系统上,mmap()不能用于增加(或减小)文件的大小。mmap()的功能是将文件的一部分映射到内存。合乎逻辑的是,您请求映射的东西应该确实存在!坦白说,我真的很惊讶您实际上能够在MS
Windows下执行此操作。

如果你想长文件,只是ftruncate()它之前mmap()它。



 类似资料:
  • 我希望在复制现有的pdf文件时,文件大小大致相同。我不明白为什么尺寸会增加这么多。 我也试过PdfCopy类。我使用PDFcopy遵循了2种方法: 逐页复制。 对pdfcopy对象调用setMergeFields(),然后调用pdfcopy.AddDocument(reader); 但这两种方法的问题都是,它会从pdf文件中丢弃一些非内容的元数据,因此当Adobe Reader打开新的pdf时会损

  • 问题内容: 我需要一个非常大的mmap文件的无拷贝调整大小,同时仍然允许并发访问读取器线程。 一种简单的方法是在同一进程中在同一文件上使用两个MAP_SHARED映射(增长文件,然后创建第二个映射,其中包括增长的区域),然后在所有可访问该文件的读取器完成操作后取消映射旧映射。但是,我很好奇下面的方案是否可行,如果可行,是否有任何好处。 使用MAP_PRIVATE映射文件 对多个线程进行只读访问 要

  • 我只使用了库中的几个实际类,即: 提前道谢。

  • 本文向大家介绍使用mmap实现多进程对大文件拷贝,包括了使用mmap实现多进程对大文件拷贝的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了mmap实现文件多进程拷贝,供大家参考,具体内容如下 假设有一个超大文件,需对其完成拷贝工作。为提高效率,可采用多进程并行拷贝的方法来实现。假设文件大小为len,共有n个进程对该文件进行拷贝。那每个进程拷贝的字节数应为len/n。但未必一定能整除,

  • 我在Android studio中创建了一个Android应用程序,并使用Kotlin作为编程语言 现在我的应用程序完成了,我想构建我的应用程序,但构建应用程序后,我的APK文件大小变为35mb<我的可绘制文件夹大小是2mb,我没有任何大文件,但为什么我的应用程序大小是35mb?! 为了生成测试apk版本,我使用了构建- 但是当我使用java语言时,这个大小是7mb!!! 我使用了这些依赖项: 我

  • 我正在创建一个简单的文件复制应用程序供我个人使用。但是当我运行这个程序时,输出文件比源文件稍大。我根据文件大小使用缓冲区,如下所示 如果文件大小小于9KB,则缓冲区为512字节 源代码 } 文件大小比较…:<源文件:“龙珠84集mp4”。。。。。文件大小:8,59,93580字节 目标文件:“sample.mp4”。。。。。文件szie:8,70,31808字节 用于运行程序的命令 此问题中使用和