Linuxでプロセス間通信にパイプを使用して、fdopen
を使用してパイプからストリームを作成し、その代わりread
/write
のストリームにfread
/fwrite
を使用する任意の利点はありますか? fdopen()
を使用してファイルディスクリプタから作成Linux上のパイプ上でストリームを使用する価値がありますか?
答えて
標準入力/出力(標準入出力)
fdopen
はstdio
ライブラリの一部です。 stdio
manualから、あなたはこれを取得:
標準I/Oライブラリは、シンプルかつ効率的なバッファリング ストリームI/Oインタフェースを提供します。入力および出力は論理データ ストリームにマッピングされ、物理I/O特性は隠されます。 関数とマクロは以下のとおりです。より詳しい情報は、個々のマニュアルページの から入手できます。
そして:
stdioライブラリはライブラリlibcの一部であり、(1)とPC(1)コンパイラCCで、必要に応じてルーチンが 自動的にロードされます。 以下のマニュアルページのセクションでは、使用するファイルが であるか、 関数のコンパイラ宣言がどのようなものか、どの外部変数が対象かを示しています。のlibc の一部である
、それはこれらの機能を使用して書かれたプログラムは、すべての標準準拠のコンパイラでコンパイルすることを意味します。 のオープン/ライト(POSIX)を使用してプログラムを作成すると、プログラムはPOSIXシステムでのみ実行されます。
ですから(a)の、それが原因で可搬性の価値があるとあなたが唯一のLinuxでそれを使用している場合、その後open/write
を使用すると、あなたは抽象化の全体の多くを取り除くため(b)のそれは、それだけの価値はないという理由でした(stdioから) - GNU GLibCの下にあるopen/write
は、syscallsの周りのラッパーであることを覚えておいてください。実際に直接呼び出しているわけではないので、少量の抽象化が存在します。
パイプに書き込むには、システムコールとコンテキストスイッチが必要です。これらを最小限に抑えたい場合は、stdio
関数を使用してユーザー空間でバッファリングすることができます。これにより、書式付き出力もfprintf
になります。
- 1. Linuxパイプのパフォーマンスを向上させる方法はありますか?
- 2. ストリーム上でxpathを使用する
- 3. LinuxのWCF - 努力する価値があります
- 4. PHPDocの冗長性はそれ以上の価値がありますか?
- 5. C++用のユーザーモードマルチスレッドライブラリ/フレームワークはLinux上にありますか?
- 6. ASP.NETでDebug.Assertを使用する価値はありますか?
- 7. nginxまたはhaproxy用のマルチコアサーバ用にLinux上で異なるヒープアロケータを試してみる価値がありますか
- 8. カバルインストールで使用するメモリの上限はありますか?
- 9. Silverlightフレームワークを使用する価値はありますか?
- 10. Linux上でPOSIXメッセージキューをユーザー間で使用できますか?
- 11. 私はLinux上でRのバージョンを更新する必要があります
- 12. Linux上のアーカイブファイルはどこにありますか?
- 13. Linux上でgccを使用したインクリメンタルリンク。出来ますか?
- 14. Linux上で静的にリンクされたアプリケーションを使用する際の短所はありますか?
- 15. ユニットテストで複数のベリファイステートメントを使用する価値はありますか?
- 16. javaでは、データがストリームまたはパイプ上で利用可能になったときに通知される方法はありますか?
- 17. Linux上にmatplotlibをオフラインでインストールする方法はありますか?
- 18. Linux上で整数プログラムを解決する良いツールはありますか?
- 19. Linux上で.tar.gzファイルを.zipに変換するコマンドはありますか?
- 20. 価格の値上げ
- 21. 同じパイプ上で動作するストリームのためのRessource処理
- 22. eコマースプロジェクトでMongoDbデータベースを使用する価値はありますか?
- 23. LibGDXモバイルアプリケーションでresizeメソッドを使用する価値はありますか?
- 24. apollo-react-reduxアプリでredux-formを使用する価値はありますか?
- 25. Doctrine 2をZend Frameworkで使用する価値はありますか?
- 26. 中型プロジェクトでCooliteを使用する価値はありますか?
- 27. HTMLの数値は上下に数字がありますか?
- 28. Linux上でMySQLを使用したMobilink
- 29. web.config値がapp.config値を上書きする方法はありますか?
- 30. pipe2の代わりにパイプを使用するとfork後にパイプ上のブロックを読み取る
[名前付きパイプ](https://en.wikipedia.org/wiki/Named_pipe)を作成する価値があるのですか? –
stdio.hはバッファリングとフォーマットされたIO(fprintf/fscanf)を提供します。それを使用するかどうかはあなたの選択です。 –
@ Peregring-lkm、no。 –