使用 mmap 逐行读取文件

2024-03-20

我有一个程序可以逐行读取大小不同的文件,我想使用 mmap 但如何使用它来逐行读取文件?

谢谢您的回答!


一旦你有mmap()编辑文件后,您可以使该文件可用于合适的流缓冲区,从现有内存中读取数据,然后使用std::getline():

#include <streambuf>
#include <string>
#include <istream>

struct membuf
    std::streambuf {
    membuf(char* start, size_t size) {
        this->setg(start, start, start + size);
    }
};

int main() {
    // mmap() the file yielding start and size
    membuf      sbuf(start, size);
    std:istream in(&sbuf);
    for (std::string line; std::getline(in, line); ) {
        ...
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 mmap 逐行读取文件 的相关文章

  • 在 Web 浏览器中禁用 F5 [重复]

    这个问题在这里已经有答案了 可能的重复 禁用浏览器的后退按钮 https stackoverflow com questions 961188 disable browsers back button 如何禁用浏览器上的 F5 刷新 htt
  • 通过另一个列表更新列表(linq)

    我有类 Data 的对象列表 如下所示 class Data int code string name DateTime date update 我还有另一个课程列表 例如 class RefCodes int old code int n
  • 当其源是 https uri 时如何使 wpf MediaElement 播放

    在 wpf 独立应用程序 exe 中 我在主窗口中包含了 MediaElement
  • EventHandler 应该始终用于事件吗?

    我一直在愉快地使用自定义委托类型和通用编写事件Action委托类型 没有真正考虑我在做什么 我有一些很好的扩展助手Action and EventHandler这使我倾向于使用那些预定义的委托类型而不是我自己的委托类型 但除此之外 除了惯例
  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 从时间列表中查找最接近的时间

    所以 这是场景 我有一个带有创建时间的文件 我想从该文件的创建时间最接近或相等的时间列表中选择一个时间 完成此操作的最佳方法是什么 var closestTime listOfTimes OrderBy t gt Math Abs t fi
  • C 类型命名约定,_t 或 ALLCAPS

    我一直想知道是否有任何命名约定 例如何时对类型使用全部大写以及何时追加 t 什么时候不使用任何东西 我知道当时 K R 发布了各种有关如何使用 C 的文档 但我找不到任何相关内容 在 C 标准库类型中 t看起来漂亮占主导地位 time t
  • 检测 TextBox 中的 Tab 键按下

    I am trying to detect the Tab key press in a TextBox I know that the Tab key does not trigger the KeyDown KeyUp or the K
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • 如何测试某些代码在 C++ 中无法编译? [复制]

    这个问题在这里已经有答案了 可能的重复 单元测试编译时错误 https stackoverflow com questions 605915 unit test compile time error 我想知道是否可以编写一种单元测试来验证给
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 如何调用与现有方法同名的扩展方法? [复制]

    这个问题在这里已经有答案了 我有这样的代码 public class TestA public string ColA get set public string ColB get set public string ColC get se
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include
  • 初始化列表在 VC10 中不起作用

    我在 VC 2010 中编写了这个程序 class class1 public class1 initializer list
  • 使用 IdentityDbContext 和 Code First 自动迁移表位置和架构的实体框架?

    我正在尝试使用 IdentityDbContext 类设置自动迁移更新 并将更改传播到整个数据库的实际 DbContext 在进入代码之前 在使用自动迁移实现 IdentityDbContext 时 我收到此错误 影响迁移历史系统表位置的自
  • MSVC编译器下使用最大成员初始化联合

    我正在尝试初始化一个LARGE INTEGER在 C 库中为 0 确切地说是 C 03 以前 初始化是 static LARGE INTEGER freq 0 在 MinGW 下它产生了一个警告 缺少成员 LARGE INTEGER Hig
  • Unity,c++ 本机插件字节数组不匹配

    在我的 C 本机插件中 我有一个调用 vector
  • 运行 xunit 测试时无法将输出打印到控制台窗口

    public class test2InAnotherProject private readonly ITestOutputHelper output public test2InAnotherProject ITestOutputHel

随机推荐

  • iOS 9 / Xcode 7:SKSpriteNode spriteNodeWithImageNamed 在某些设备上不起作用

    我在从 SKSpriteNode 的 xcassets 图像集中加载图像时遇到问题 虽然它在 iOS 8 x 上运行良好 SKSpriteNode spriteNodeWithImageNamde 图像名称 它不适用于某些运行 iOS 9
  • 引用限定成员函数作为模板参数?

    这在 clang 3 3 中编译得很好 template
  • 如何重新搜索或重新匹配整个文件而不将其全部读入内存?

    我希望能够对整个文件运行正则表达式 但我希望不必立即将整个文件读入内存 因为将来我可能会处理相当大的文件 有没有办法做到这一点 谢谢 澄清 我无法逐行阅读 因为它可以跨越多行 您可以使用 mmap 将文件映射到内存 然后可以像普通字符串一样
  • Next.js 中传递动态路由的无效参数时如何返回 404 Not Found 页面和 HTTP 状态?

    例如 我有一条动态路线 blog article id 访问现有博客文章时 blog id that exist 它按预期工作 现在我要处理这个案例 blog id that does not exist适当地 代码在 blog id js
  • R 中的条件交叉表

    寻找使用 expss 包实现以下任务的最快方法 有了一个很棒的 expss 包 我们可以轻松地进行交叉表 它具有其他优点和交叉表的有用功能 我们可以轻松地对多个变量进行交叉表 如下所示 install packages expss libr
  • 将 dbml 中的连接字符串指向 app.config

    我可以直接将连接字符串指向Dbml designer cs到连接字符串app conf 我编写了下面的代码 它成功指向app config public leDataContext base ConfigurationManager Con
  • Htaccess - 重定向除一个网址之外的所有网址

    我正在尝试将所有网址从一个域重定向到另一个域 但一个 某种 这是我必须重定向的 htaccess 除了域之外 都保持相同的 url 例如 domain com something 转到domain2 com something Rewrit
  • boost C++ 无锁队列与共享队列

    我对多线程编程很陌生 我只知道最常见的生产者 消费者 队列 我正在使用 boost c 库 我不知道是否更好地使用 boost lockfree queue 或使用 mutex 和 condition variable 的 std queu
  • Me 关键字的行为不一致

    我注意到的行为MeVBA 代码中的关键字模板文件根据文档是否具有 ActiveX 控件而有所不同 带有 ActiveX 控件的文档 Me引用从模板创建的新文件 没有 ActiveX 控件的文档 Me引用模板而不是新文件 为了演示这种奇怪的行
  • Windows 控制台中的希腊字母

    我正在用 C 编写一个程序 当我在 cmd exe 中运行它时 我希望在菜单中包含希腊字符 有人说 为了包含希腊字符 你必须使用printf事情是这样的 printf charset IS0 1089 uffe 但他们不确定 有谁知道这是怎
  • 西里尔字母验证

    今天我遇到了一个有趣的缺陷 问题是我在俄罗斯部署了我的 Web 应用程序 并且名称值 在下面的方法中没有返回 true 作为字母数字 很好奇人们如何解决这样的问题 邓肯 private boolean isAlphaNumeric Stri
  • 在长按手势识别器上获取错误的 UIButton 标签

    我知道已经有很多类似的问题被问到 但我已经尝试了所有这些问题 并且在未能解决我的问题时我发布了我的问题 首先我尝试的问题是 1 如何通过longPressGestureRecognizer获取button tag https stackov
  • 将自签名 XAP 部署到 Windows Phone 8

    我们为 WP8 开发了一个应用程序 并希望通过 XAP 文件的下载 URL 在内部分发它 到目前为止我们已采取的步骤 使用Makecert exe生成带有XXX pvk的自签名XXX cer 无密码 使用 Pvk2Pfx exe 创建一个包
  • jquery ajax加载覆盖插件[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 没有 Sql Alchemy 引擎的 Dataframe 到 sql

    我有一个数据框 id value name 1 100 sam 2 766 abc 3 234 qqq 4 435 ppp 5 345 mmm 我想将此表保存到 SQL Server 数据库表 tab1 中 我可以df to sql 但当我
  • 在特定日期使用 CSS 更改背景?

    有谁知道如何在特定日期使用 CSS 自动更改网站的背景 比如情人节 复活节 圣诞节等 为此 您必须使用 PHP 或 JavaScript 等服务器端语言 例如 使用 PHP 您可以使用以下命令访问服务器日期 时间date http php
  • 在另一个线程中运行异步函数

    我正在评估异步 CTP 如何开始在另一个线程池的线程上执行异步函数 static async Task Test Do something await something static void Main string args Is th
  • 如何在 Firebase 文件上设置 Access-Control-Allow-Origin

    我正在尝试设置Access Control Allow Origin to 在某个文件上 这是我的 firebase json 文件 database rules database rules json hosting public pub
  • Xunit 以下构造函数参数没有匹配的夹具数据

    在使用 XUnit for NET 1 0 框架 net46 时 我不断收到此错误 以下构造函数参数没有匹配的夹具数据 我看过这个帖子 收集装置不会注入 https stackoverflow com questions 32319903
  • 使用 mmap 逐行读取文件

    我有一个程序可以逐行读取大小不同的文件 我想使用 mmap 但如何使用它来逐行读取文件 谢谢您的回答 一旦你有mmap 编辑文件后 您可以使该文件可用于合适的流缓冲区 从现有内存中读取数据 然后使用std getline include