以附加模式打开文件时,如何重新定位文件指针?

2023-12-28

我正在尝试将一些数据插入文件的中间。我已以追加模式打开文件:

file = fopen(msg->header.filename, "ab");

然后我尝试在文件中寻找所需的偏移量,如下所示:

fseek(file, msg->header.offset, SEEK_SET);

但是,当我尝试 fwrite 时,如下所示:

int bytesWritten = fwrite(msg->message, 1, msg->header.length, file);

所有数据都写入文件末尾而不是文件中间。

这是因为我使用的是附加模式吗?我会以写入模式打开,但我需要保留文件中的现有内容。


查看 ANSI C 函数 fopen 对于“a”(APPEND)模式的规范:All写操作发生在文件末尾。 你的 fseek 将被忽略。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以附加模式打开文件时,如何重新定位文件指针? 的相关文章

随机推荐

  • 数据流中的 nltk 依赖关系

    我知道外部Python依赖项可以通过requirements txt文件输入到Dataflow中 我可以在我的数据流脚本中成功加载 nltk 然而 nltk 通常需要下载更多文件 例如停用词或 punkt 通常在本地运行脚本时 我可以运行
  • 返回局部变量行为的地址[重复]

    这个问题在这里已经有答案了 可能的重复 局部变量的内存可以在其作用域之外访问吗 https stackoverflow com questions 6441218 can a local variables memory be access
  • 我应该如何从 scipy.sparse.csr.csr_matrix 和列表进行子采样

    我有一个scipy sparse csr csr matrix表示文档中的单词和列表列表 其中每个索引表示矩阵中每个索引的类别 我遇到的问题是我需要从数据中随机选择 N 行 所以如果我的矩阵看起来像这样 1 3 2 3 4 4 1 5 2
  • 使用 .NET 检查 Internet 连接的最佳方法是什么?

    在 NET 中检查 Internet 连接的最快 最有效的方法是什么 您可以使用此代码 它也应该适用于伊朗和中国 public static bool CheckForInternetConnection int timeoutMs 100
  • git fsck 代表什么?

    后面的是什么意思fsck命令名称 The 文档 http git scm com docs git fsck该命令的似乎没有提及该名称代表什么 它代表文件系统检查 这个名字取自Unixfsck http linux die net man
  • 用于克隆数据库的 SQL 脚本,保持原始数据库不变

    我们目前有 CMS 的基本安装 在此 CMS 中 它包含用户 产品 内容等的完整工作数据集 我们希望增加安装时间 因为现在我们必须进入 SQL Server 2012 创建一个新数据库 然后从现有基本安装数据库恢复该数据库 我们每次安装可能
  • 我不断收到错误消息,指出范围列太小

    我正在编写一些代码 当我尝试运行它时出现错误 范围的起始列太小 我正在使用 Google Apps 脚本 我收到的错误就在这一行 var cellCup ss getRange ctCup 0 activate getValue const
  • 如何使用较旧的第三方依赖项在 net46 框架上构建 ASP.NET Core RC2 应用程序

    我有一个闪亮的新 Asp Net Core MVC 应用程序 它引用了一些旧的net45图书馆 在完整的 net45 框架上与 Asp Net Core RC1 配合良好 从 Asp NET Core rc1 迁移到 rc2 我遇到了一个我
  • org.hibernate.tool.schema.spi.CommandAcceptanceException:使用 h2 和 JPA 在 SpringBoot 中通过 JDBC 语句执行 DDL 时出错

    使用 h2 数据库和 JPA 运行 spring boot 时 出现以下错误 org hibernate tool schema spi CommandAcceptanceException Error executing DDL via
  • jQuery 缓动在我的 animate() 调用中不起作用

    我有 4 个圆形按钮 位于中心区域在我的页面上 http goo gl yacZly 将鼠标悬停其中一个会使其尺寸增大 但我想为这些按钮的增大和缩小运动添加一些缓动 弹跳效果 但是由于某种原因 缓动部分不起作用 我确实将缓动插件添加到我的页
  • 奇怪的Java Unicode正则表达式StringIndexOutOfBoundsException

    我的问题很简单 但却令人费解 可能有一个简单的开关可以解决这个问题 但我在 Java 正则表达式方面经验不多 String line line replaceAll i 1 2 1 这会崩溃 如果我删除 i 开关 有效 这三个unicode
  • 在启动时运行 python 脚本 - debian

    我已经使用网络摄像头创建了一个应用程序 在这里 我的应用程序打开一个窗口来显示图像 我想在启动时运行该应用程序 如果我将启动文件放入 rc local 中 它会在启动时成功运行 但不允许显示窗口 表明 gtk warning cannot
  • FlatBuffers:如何写入巨型文件

    我正在尝试使用 FlatBuffers 来存储 OpenStreetMap 数据 所以 这将是 50GB 由于通常所有内容都保存在内存中 因此如何可能 如果有的话 将数据顺序写入文件 我有一种感觉 这并不是 FlatBuffers 所擅长的
  • 如何检查TouchID是否启用

    有什么方法可以检查我的应用程序是否启用了 TouchID 我如何检查我的应用程序是否启用了 TouchID 例如 DropBox 能够启用图形打印传感器 现在有什么方法可以检查我的应用程序是否显示基于 touchid 的 TouchID 屏
  • 重新审视网站优化经验法则:现代浏览器的底层仍然需要 JavaScript?

    十多年来我一直在关注 Web 开发趋势 我一直坚持的最大的网站优化技术之一就是将 JavaScript 放在网站的底部 我坚持的理由是 JavaScript 会阻止并行下载 并且每个主机名一次只能下载两个组件 如果添加到文档标题中 这将对您
  • 无法理解块的词法范围

    为了理解块的词法范围 我编写了以下代码 typedef int MyBlock void MyBlock b 3 for int i 0 i lt 3 i b i return i for int i 0 i lt 3 i NSLog d
  • Symfony2 img/LdapBundle 凭据错误错误

    我是 Symfony2 的新手 正在尝试使用上面的包连接到 ldap 但是我不断收到 错误凭据 错误 我不明白为什么 我的 Security yml 文件如下所示 security firewalls restricted area pat
  • 使用 Javascript 设置 HTML 的内容

    在网页中 我调用一个 WebService 它为我提供了一个整数值 我需要在文本块中显示该值 我目前正在使用 HTML span 到目前为止 我已经找到了两种将我的价值放入跨度中的方法 innerText 是一种 IE 专有的方法 并且in
  • Elasticsearch sum_bucket,从结果中去除中间聚合

    我有以下查询 我执行第一项聚合 返回大量存储桶 然后在此存储桶上执行指标聚合 此中的平均值 例子 最后是 sum bucket 聚合 当我运行这个查询时 输出包含所有中间 my huge bucket my huge bucket metr
  • 以附加模式打开文件时,如何重新定位文件指针?

    我正在尝试将一些数据插入文件的中间 我已以追加模式打开文件 file fopen msg gt header filename ab 然后我尝试在文件中寻找所需的偏移量 如下所示 fseek file msg gt header offse