重複の可能性:
メモリ内のバッファのファイル記述子を取得する方法は?
FILE
クラスを使用するライブラリに、ファイルではなくメモリ内のバッファを強制的に使用させようとしています。私は試しfmemopen
ましたが、ライブラリはfileno
-1 を返すものを使用し、ライブラリをクラッシュさせます。そのため、ファイル記述子が必要であり、パイプ コマンドを使用して作成できることを読みました。何をしたかは完全には理解できませんが、機能するようになりました。しかし、私がしたことが実際に安全かどうかはわかりません。コードは次のとおりです。
int fstr[2];
pipe(fstr);
write(fstr[1], src, strlen(src));
close(fstr[1]);
FILE* file = fdopen( fstr[0], "r" );
それでこれは安全ですか?