2016-07-06 18 views
1

私は自分の iOSアプリケーションの別の部分にデータを渡すために古いFIFOを使用したいと思います。私はdispatch_io_create_with_pathを見ましたが、もう片方の側が普通のread()を使ってデータを読むことができるようにしたいと思います。 FIFOファイルを使用することは可能ですか?どうやって?iOSでFIFOファイルを作成して使用できますか? (ObjC)

res = mkfifo(path, 0x777); 

int fd; 
fd = open(path, O_WRONLY); 
write(fd, "test", 5); 
close(fd); 

はmkfifo()戻り値0が、オープン()-1で失敗:

Iは次Xcode7にObjCのコード(ドキュメントディレクトリ+ファイル名のパスポイント)を試みました。面白いことに、私が 'O_RDONLY'でopen()しようとすると、そこに何かが起こっているので、何かが待っています..

+0

なぜファイルでやりたいのですか?あなたはこれを見ましたか?http://stackoverflow.com/questions/13129233/objective-c-manual-array-fifo-queue?それはあなたが望む/望むものとどのように異なるのですか? – Losiowaty

+0

これは役に立ちますが、私が見つけたFIFOファイルを探しているのかどうかわかりません。しかし、入力や出力の操作を行う前に両端を同時に開いておく必要があります。他のプロセスが同じFIFOを書き込み用に開くまで、通常読み込みのためのFIFOを開きます。逆も同様です。 ' – Putz1103

+0

@Losiowaty'その他のFIFO 'について質問しています。 Unix/Linux/Mac OS Xでサポートされているファイルタイプではありません。ファイルに実際にデータを書き込まずに、 'filePath'が必要な静的ライブラリにデータを渡したいと思います。 – gheni4

答えて

2

omgは私がその時間を無駄にしたとは信じられません... エラーは「0x777」部分。 「0777」にする必要があります。それを修正した後 - FIFOは私のためにうまく動作します(iOS 9.2.1)。

+0

ここではどのようなパスを設定しましたか?私は、iOSではファイルシステムがサンドボックスされていると考えました。 –

+0

@gran_profaci私はfilePathを期待している私のプロジェクトの一部であった静的ライブラリにデータを渡さなければなりませんでしたが、すべてのデータをファイルに書きたくありませんでした。すべてが同じサンドボックス内でローカルに発生したため、問題はありませんでした。私は正確なパスを覚えていないが、それは 'Documents'のregulalファイル名だった – gheni4

関連する問題