gpt4 book ai didi

c++ - 如何在 Windows 上将 BYTE 数组映射为 FILE *

转载 作者:可可西里 更新时间:2023-11-01 10:03:06 25 4
gpt4 key购买 nike

我发现了旧的、巨大的开源代码,它对存储在磁盘文件中的二进制数据执行一些计算,输出也保存为二进制文件。

我想使用一种根方法,简化签名:

int magic(FILE* input, FILE* output);

问题是我将输入数据存储在进程内存中,我希望输出也作为进程内存。代码太大,我无法在合理的时间内重写它。

这个 API 迫使我在每次调用 magic() 时进行两次巨大的 I/O。

是否有可能在 Windows 上使用 C/C++ 机制将 BYTE 数组映射为 FILE*

最佳答案

看来你需要fmemopen的功能:

http://man7.org/linux/man-pages/man3/fmemopen.3.html

它获取一个内存区域并返回一个文件描述符。不幸的是,这是一个 POSIX 函数,在 Windows 中没有对应的函数。内存映射文件可能不是您想要的,因为它们采用现有文件并将其映射到内存区域,而不是像 fmemopen 那样相反。您唯一的选择是在 Windows 上将 fmemopen 与 mingw 结合使用(不知道您是否可以这样做)或推出您自己的 fopen、fwrite 等版本。

关于c++ - 如何在 Windows 上将 BYTE 数组映射为 FILE *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46836658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com