を消費し、FILE *
データを別の に出力するライブラリがありますFILE *
。
ディスク上のファイルを読み書きすることなく、このライブラリへの入力とこのライブラリからの出力の両方をメモリ内で処理したいと考えています。
これは iOS で行っているため、ライブラリを別のアプリとして実行し、stdin
/を使用するstdout
ことは (私の知る限り) 実行可能なオプションではありません。
を消費し、FILE *
データを別の に出力するライブラリがありますFILE *
。
ディスク上のファイルを読み書きすることなく、このライブラリへの入力とこのライブラリからの出力の両方をメモリ内で処理したいと考えています。
これは iOS で行っているため、ライブラリを別のアプリとして実行し、stdin
/を使用するstdout
ことは (私の知る限り) 実行可能なオプションではありません。
ObjC は C のスーパーセットであるため、関数、、、および を含む に#import/#include <stdio.h>
アクセスするだけで済みます。fwopen には、この他のSO questionで 2 つのストリームに書き込む方法を示す例があります。funopen()
readfn
writefn
seekfn
closefn
fmemopen
Mac OSX と iOS にはandが含まれていませんopen_memstream
。これらは明らかに移植性のない Linux 機能であるためです。
macos 10.13、ios 11.0、tvos 11.0、および watchos 4.0 の時点で、その他のいくつかfmemopen
のopen_memstream
役立つ POSIX.1-2008 標準関数とともに、stdio で利用できます。
https://github.com/shyuep/pyhull/tree/master/src/fmemopenをご覧ください。Mac OSX 10.8.2 で自分でテストしましたが、問題なく動作しています。
著者は、iOS でも動作するはずだと述べています。