7

を消費し、FILE *データを別の に出力するライブラリがありますFILE *

ディスク上のファイルを読み書きすることなく、このライブラリへの入力とこのライブラリからの出力の両方をメモリ内で処理したいと考えています。

これは iOS で行っているため、ライブラリを別のアプリとして実行し、stdin/を使用するstdoutことは (私の知る限り) 実行可能なオプションではありません。

4

2 に答える 2

4

ObjC は C のスーパーセットであるため、関数、、、および を含む に#import/#include <stdio.h>アクセスするだけで済みます。fwopen には、この他のSO questionで 2 つのストリームに書き込む方法を示す例があります。funopen()readfnwritefnseekfnclosefn

fmemopenMac OSX と iOS にはandが含まれていませんopen_memstream。これらは明らかに移植性のない Linux 機能であるためです。

macos 10.13、ios 11.0、tvos 11.0、および watchos 4.0 の時点で、その他のいくつかfmemopenopen_memstream役立つ POSIX.1-2008 標準関数とともに、stdio で利用できます。

于 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 に答える