繁体   English   中英

我可以在iOS上的C / Objective-C中创建内存映射的FILE *吗?

[英]Can I create a memory-mapped FILE * in C/Objective-C on iOS?

我有一个库,它使用FILE *并将数据输出到另一个FILE *

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

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

因为ObjC是C的超集,所以你要做的就是funopen() #import/#include <stdio.h>来访问funopen() ,它本身包含readfnwritefnseekfnclosefn 并且fwopen有一个例子显示如何在另一个SO问题上写入两个流。

Mac OSX和iOS不包括 fmemopenopen_memstream因为它们显然是不可 移植的linux函数

从maco 10.13,ios 11.0,tvos 11.0和watchos 4.0, fmemopenopen_memstream以及一些其他有用的POSIX.1-2008标准函数可以在stdio中获得。

看看https://github.com/shyuep/pyhull/tree/master/src/fmemopen ,我已经在Mac OSX 10.8.2上自己测试了它,它运行正常。

作者声明它也应该适用于iOS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM