查找由 fmemopen 创建的文件的大小

2024-01-11

我在用着fmemopen创建一个变量FILE* fid将其传递给从打开的文件读取数据的函数。

在该函数的某处,它使用以下代码来查找文件的大小:

fseek(fid, 0, SEEK_END);
file_size = ftell(fid);

这对于常规文件来说效果很好,但是对于由fmemopen我总是得到file_size = 8192

有什么想法为什么会发生这种情况吗? 有没有一种方法可以获取适用于常规文件和使用创建的文件的正确文件大小fmemopen?

EDIT:我的电话fmemopen:

fid = fmemopen(ptr, memSize, "r");

where memSize != 8192

EDIT2:

我创建了一个最小的例子:

#include <cstdlib>
#include <stdio.h>
#include <string.h>
using namespace std;

int main(int argc, char** argv)
{
    const long unsigned int memsize = 1000000;
    void * ptr = malloc(memsize);
    FILE *fid = fmemopen(ptr, memsize, "r");
    fseek(fid, 0, SEEK_END);
    long int file_size = ftell(fid);
    printf("file_size = %ld\n", file_size);
    free(ptr);
    return 0;
}

顺便说一句,我目前正在另一台计算机上工作,在这里我得到 file_size=0


的情况下fmemopen,如果您使用选项打开b then SEEK_END测量内存缓冲区的大小 http://www.kernel.org/doc/man-pages/online/pages/man3/fseek.3.html。您看到的值必须是默认缓冲区大小。

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

查找由 fmemopen 创建的文件的大小 的相关文章

  • 高级 Win32 图像文件 I/O?

    我想在 Windows C 应用程序中将图像文件读入内存 什么是一个相当简单的解决方案 也许类似于 IOS 提供的UIImage 我希望支持合理数量的文件格式 我需要为图像处理的位图提供一些低级访问权限 我在互联网上阅读了很多内容 看起来
  • 如何知道并加载特定文件夹中的所有图像?

    我有一个应用程序 C Builder 6 0 需要知道特定文件夹中的图像总数 然后我必须加载它们 在 ImageList 或 ComboBoxEx 中 或任何其他控件中 我怎样才能做到这一点 我知道如何在控件中加载图像 或保存在 TList
  • 有没有比这更快的方法来查找目录和所有子目录中的所有文件?

    我正在编写一个程序 需要在目录及其所有子目录中搜索具有特定扩展名的文件 这将在本地驱动器和网络驱动器上使用 因此性能是一个问题 这是我现在使用的递归方法 private void GetFileList string fileSearchP
  • 在 Windows Phone 上启动 pdf 文件时出现 System.Runtime.InteropServices.COMException

    我正在尝试使用我之前在另一个应用程序上使用过的以下工作代码打开 pdf 文件 但这一次 当流程到达此行时 我收到 System Runtime InteropServices COMException Windows System Laun
  • 使用 C# 使用应用程序密码登录 Office 365 SMTP

    在我们的 Office 365 公司帐户中实施两步身份验证之前 我的 C WPF 程序已成功进行身份验证并发送邮件 我使用了 SmtpClient 库 但现在我必须找到另一个解决方案 因为它不再起作用 我找不到任何使用 O365 应用程序密
  • 当我单击 GridView 项时返回 ImageView 实例

    当我点击GridView项时如何返回ImageView实例 我为 ItemClick 创建自定义绑定事件 public class ItemClickSquareBinding MvxBaseAndroidTargetBinding pri
  • 阅读 Stack Overflow RSS 源

    我正在尝试获取未回答问题的列表the feed https stackoverflow com feeds 但我在阅读时遇到困难 const string RECENT QUESTIONS https stackoverflow com f
  • C++ 在 Vector 中使用不可分配的对象

    我想将对象列表存储在std vector 但对象包含引用且无法分配给 但是 我可以复制构造该对象 我能想到的唯一选择是使用指针来包装对象并在需要分配指针时重新设置指针 但这样做的语法会显着降低可读性 特别是在使用迭代器时 我更喜欢另一种选择
  • 组合 Datepicker 和 Timepicker 值 Win 8.1

    我试图同时使用 Datepicker Timepicker 来返回可以存储在数据库中的 DateTime 例如 我想要安排会议的开始日期和结束日期 如果适用 我将如何将这些值组合成 SQL 数据库可以处理的正确格式 任何反馈都会很棒 我让这
  • 成员初始值设定项列表中的求值顺序是什么?

    我有一个带有一些参数的构造函数 我假设它们是按照列出的顺序初始化的 但在一种情况下 它们似乎是按相反的顺序初始化的 导致中止 当我反转参数时 程序停止中止 下面是我正在使用的语法的示例 a 之前需要初始化b 在这种情况下 你能保证这个初始化
  • 防止复制构造和返回值引用的分配

    如果我有一个函数返回对类实例的引用 但我无法控制其源 比如说list
  • for 循环 - 没有效果的语句

    由于某种原因 我收到错误 statement with no effect关于这个声明 for j idx j lt iter j increment printf from loop idx i int idx punc ctxt j 你
  • 当格式字符串包含“{”时,String.Format 异常

    我正在使用 VSTS 2008 C Net 2 0 执行以下语句时 String Format 语句抛出 FormatException 有什么想法是错误的吗 这是获取我正在使用的 template html 的位置 我想在 templat
  • 使用 Linq 进行异步Where过滤

    我有一个List通过填充的元素async调用 WebService 没问题 我需要过滤该列表以便在应用程序视图上显示某些内容 我试过这个 List
  • 编写专门用于类及其子类的函数模板

    我正在尝试编写一个函数模板 一个版本应该用于不满足另一版本标准的所有类型 当参数是给定类的基类或该类本身时 应使用另一个版本 我尝试过超载Base 但是当类派生自Base 他们使用通用的 而不是特定的 我也尝试过这种 SFINAE 方法 s
  • C# ToString("MM/dd/yy") 删除前导 0 [重复]

    这个问题在这里已经有答案了 可能的重复 格式化 NET DateTime Day 不带前导零 https stackoverflow com questions 988353 format net datetime day with no
  • 宏观评价[重复]

    这个问题在这里已经有答案了 可能的重复 未定义的行为和序列点 https stackoverflow com questions 4176328 undefined behavior and sequence points 我无法理解以下宏
  • 有没有办法让 VS2010 在我的方法中扩展或收缩 try 块?

    我的代码有很多 try catch finally 块 与我在 VS2010 中的方法不同 除了添加区域之外 我无法在开发时扩展或收缩这些区域来隐藏内容 try vm R vm Qu vm T vm D vm Fil vm Type vm
  • C++0x 中的新 unicode 字符

    我正在构建一个 API 它允许我获取各种编码的字符串 包括 utf8 utf16 utf32 和 wchar t 根据操作系统 可能是 utf32 或 utf16 新的 C 标准引入了新类型char16 t and char32 t没有这么
  • 当我读取 500MB FileStream 时出现 OutOfMemoryException

    我使用 Filestream 读取大文件 gt 500 MB 但出现 OutOfMemoryException 任何有关它的解决方案 我的代码是 using var fs3 new FileStream filePath2 FileMode

随机推荐

  • Spring security - 更改/登录默认路径

    我们想为我们的 Spring Boot 应用程序添加 spring 安全性 问题是我们已经 login路径已使用 所以目前我们无法加载重定向到的 Spring Security 默认登录页面 login path 我们想要保留 spring
  • X.509v3 ASN.1 到 C 数据结构

    我正在尝试创建代理证书的 X509 请求 ProxyCertInfo 扩展RFC3820 http www ietf org rfc rfc3820 txt 在 C OpenSSL 中 但我无法弄清楚应该如何定义 ProxyCertInfo
  • CDI SessionScoped bean 的非延迟实例化

    CDI新手问题 简单测试场景 JSF CDI SessionScoped beans 我需要一种优雅的方法来实例化一组已知的会话范围的 CDI bean 而无需在JSF页面或从其他 bean 调用它们的方法 作为一个测试用例 一个简单的日志
  • 我什么时候应该使用构建器设计模式? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在学习设计模式并找到了构建器设计模式 这种设计模式有什么好处以及什么时候应该使用它 我冲浪www dofactory com and www
  • getLastKnownLocation() 返回 null [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我在这里阅读了很多关于这个主题的问答 但我不得不说它们都不起作用 我的问题是 即使我启用了 GPS 我也无法获取位置 除
  • 应用程序引擎 python 教程错误

    我正在尝试在这里做 python 教程http code google com appengine docs python gettingstarted helloworld html http code google com appeng
  • 如何以编程方式选择网络浏览器控件中的文本? C#

    问题是这样的 我想让我的程序的用户能够在 webBrowser 控件中搜索给定的关键字 标准 Ctrl F 我可以毫无问题地在文档中找到关键字并使用跨度和replace 函数突出显示所有实例 我am无法获得我想要使用的 查找下一个 功能 当
  • 安装 Visual Studio 2015“安装程序被阻止”并出现 10 个错误

    谁可以帮助我Visual Studio 2015安装问题 预览 Windows 更新错误 这是设置阻止的屏幕截图 以下是我在此设置中遇到的错误 Condition VersionNT v6 3 AND WindowsBuildNumber
  • Groovy def l = [1, 2, 3] as BlockingQueue

    如果我写类似的东西def l 1 2 3 as Socket这显然是无稽之谈 我明白了 org codehaus groovy runtime typehandling GroovyCastException Cannot cast obj
  • 创建子类别选择框 onChange

    我正在创建一个类别系统 用户可以从数据库中选择类别 选择后会创建另一个包含该类别子类别的选择框 所以 我的问题是我怎样才能最好地做到这一点 顺便说一句 我正在使用 Laravel 框架 第一类很简单
  • dataGridView默认错误对话框句柄

    我试图隐藏默认的 datagridview 错误对话框 我将这个事件处理程序的代码放入其中 this dataGridView2 DataError new System Windows Forms DataGridViewDataErro
  • Rails 与 bin/rails 之间有什么区别?

    作为大一新生 我遇到了许多不清楚的细节 其中之一是bin 事物 我一直想知道以下之间有什么区别 rails generate and bin rails generate 当我在控制台中运行这些命令时 它们的行为似乎相同 还有rake an
  • 使用 Drools Workbench 和 KIE 服务器的 HelloWorld

    将 KIE Drools Workbench 6 2 0 Final 安装在 JBoss 7 Application Server 本地实例中 将 Kie Server 6 2 0 Final 安装在本地 Tomcat 7 实例中 严格使用
  • 测试 WCF Web 服务?

    我想为 WCF 服务创建一个测试类 我相信 嘲笑 是正确的术语 我不太确定我认为我必须这样做的方式是正确的方式 我已获得 WCF 服务的 URL 例如 http somesite com wcf RealService svc And ht
  • iOS:如何使用 Quartz 测量字符串的宽度和高度?

    在我提出问题之前 这是来自 Apple 的文档 如何使用 Quartz 确定字符串的宽度 如果文本测量对您的应用很重要 那么可以 使用 Quartz 2D 函数计算它们 但是 您可能首先 考虑使用 ATSUI 其优势在于文本布局和 测量 A
  • 是否可以阻止来自 TFS 中某个分支的 Pull 请求?

    我在 TFS 中有一个共享分支 即很多人推送它 我想阻止人们从该共享分支向任何其他分支打开拉取请求 我可以完全控制服务器端 例如 我可以添加服务器端挂钩或安装服务器端扩展 动机 Given 1 在 TFS 中 我们将工作项与提交相关联 但是
  • 调整大小期间不要重新绘制窗口

    我的 QML 应用程序 Qt 5 4 基于Window物品 用户可以调整应用程序的大小 当应用程序调整大小时 应用程序的内容也会分别调整大小 使用onWidthChanged and onHeightChanged 这一切都很好 但为了避免
  • 将函数中的变量传递给 R 中的其他函数变量

    我正在尝试传递一个变量Phyla 这也是感兴趣的 df 列的名称 到其他函数中 但是我收到错误 Error Column税级is unknown 我明白了 在函数中声明您想要使用一次的列会更方便 因为这也会在脚本中重复多次 我尝试过使用OT
  • 在 Java 中缩短已经很短的字符串

    我正在寻找一种方法来尽可能缩短已经很短的字符串 该字符串是主机名 端口组合 可能看起来像 我的域名 se 2121 or 123 211 80 4 2122 我知道由于所需的开销和缺乏重复 对于这么短的字符串来说常规压缩几乎是不可能的 但我
  • 查找由 fmemopen 创建的文件的大小

    我在用着fmemopen创建一个变量FILE fid将其传递给从打开的文件读取数据的函数 在该函数的某处 它使用以下代码来查找文件的大小 fseek fid 0 SEEK END file size ftell fid 这对于常规文件来说效