7

我有一个库,它消耗 aFILE *并将数据输出到另一个FILE *.

我想在内存中处理这个库的输入和这个库的输出,而不需要从磁盘上的文件读取/写入文件。

我们在 iOS 中这样做 - 因此将库作为单独的应用程序运行并使用stdin/stdout不是(据我所知)一个可行的选择。

4

2 回答 2

4

因为 ObjC 是 C 的超集,所以您所要做的就是#import/#include <stdio.h>访问funopen()它本身包含函数readfnwritefnseekfnclosefnfwopen 有一个示例,显示如何在另一个SO question中写入两个流。

Mac OSX 和 iOS 不包含fmemopenopen_memstream因为它们显然是不可移植的linux 功能

从 macos 10.13、ios 11.0、tvos 11.0 和 watchos 4.0 开始,fmemopenstdioopen_memstream中提供了一些其他有用的 POSIX.1-2008 标准函数。

于 2012-04-20T20:28:22.813 回答
2

看看https://github.com/shyuep/pyhull/tree/master/src/fmemopen,我自己在 Mac OSX 10.8.2 上测试过,它工作正常。

作者表示它也应该适用于 iOS。

于 2013-06-30T00:33:38.847 回答