問題タブ [boost-iostreams]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Boost.Serializationは、プラットフォームごとにシリアル化が異なりますか?
Boost.Serializationを使用してstd::mapをシリアル化します。コードは次のようになります
MacSnowLeopardとUbuntuLucid10.04でコードをコンパイルしてテストしました。両方のシステムにBoost1.40があります。Macでは、自分でコードを作成しました。Ubuntuボックスで、aptitudeを介してバイナリを取得しました。
問題:Macでマップをシリアル化すると、Ubuntuボックスでマップを逆シリアル化できません。試してみると、無効な署名例外が発生します。
c++ - Windowsのソースから構築されたbzip2でiostreamをブーストする
最近、zlibとbzip2の両方の圧縮フィルターを両方のiostreamでサポートするWindows上にBoostバージョン1.44.0を構築する作業に時間を費やしました。さまざまな理由から、boostがソースからzlibとbzip2の両方のライブラリをビルドできるようにすることが決定されました。価値はありますが、重要ではないと思います。使用しているMSVCのバージョンはVC9(VS2008)です。また、私の表面的な調査から、この問題は、Windows上のbzip2に対して構築されたiostreamを使用するすべてのバージョンのブーストに適用されるはずであることに注意してください。
-sZLIB_SOURCE=<PATH>
とを指定することにより、きれいに構築されたブースト-sBZIP2_SOURCE=<PATH>
。ただし、boost_iostreams * .dll libsは、存在しなかったlibbz2.dll(boost_bzip2 * .dllではなく)に依存していることがわかりました。ただし、Boostはboost_bzip2*.dllを正常にビルドしました。すべてのビルドバリアント情報のプレースホルダーとしてワイルドカードを使用していることに注意してください。
問題: libbz2.dllへのハードコードされた依存関係がどこかに存在します。
c++ - Boost iostreamsフィルターの使用(クローズおよびコピー不可)
crypto ++について質問した後、ブーストIOstreamを使用して実装しようとしました。私は次のコードを作成しました:
問題番号 1: 「Tが標準ストリームまたはストリームバッファタイプの場合、非定数参照を取得するプッシュのテンプレート化されたオーバーロードを使用して」と記載されているドキュメントにもかかわらず、sha_output_filterをコピー不可にすると機能しません。しかし、私が行のコメントを外すと:
しかし、boost::ref
作品は。
問題番号 2.ストリームを閉じる方法は?デバッグ出力は次のとおりです。
c++ - 非圧縮のfiltering_istreamをstringstreamにコピーしようとするとクラッシュします
ファイルを解凍して、その内容を文字列ストリームに書き込みたい。
これは私が試したコードです:
警告(そしてもちろんエラー)なしでコンパイルされますが、実行中に関数がreadGZipLog()
クラッシュします:
./build
./test
アプリケーションを自動的にコンパイルして起動するスクリプトです
ファイルを確認しました:何かが含まれていますが、を使用して解凍できませんgunzip
。したがって、圧縮が適切に機能したかどうか、およびこれがgzip error
Boostによってスローされたものと関係があるかどうかはわかりません。
エラーが発生した場合のヒットを教えてください。
ご協力いただきありがとうございます!
ポール
c++ - 一定の間隔でフラッシュするバッファリングされたストリームを実装する標準的な方法は?
特定のパケット/秒間隔でパケットを生成するソースからのパケットをシミュレートしています。ostream
オブジェクトのように動作するストリーム クラスを作成し、operator<<
それを介して出力するために使用できるようにしたいと考えていますが、挿入された各値は指定された間隔で順番にバッファからファイル記述子に解放される必要があることに注意してください。
したがって、たとえば、ファイル記述子を持つソケットがあり、次のようにsockfd
言うことができます。
出力は、出力するようにタイミングが調整されます
ソケットに。私は今 Boost.Iostreams を見ていますが、それは良い解決策でしょうか? 私が認識していないこの問題を説明する、グーグルで検索できる魔法のフレーズはありますか?
どんな助けでも大歓迎です。
ありがとうブラッド
c++ - boost::iostreamsを使用してbashスクリプトをC++に変換する方法
boost::iostreamsを使用して次のbashコードをC++に変換しようとしています。
ファイルを開いて解凍できます。
次に、非圧縮ファイルを開きます。
今、私は少し立ち往生しているので、ここに私の質問があります:
1)2つのストリームを連結するためのboost :: iostreamsソリューションは何ですか?
2)grep / sedをエミュレートするために正規表現フィルターを介して結果を出力するにはどうすればよいですか?
結果として、coutにコピーできるistreamが必要です。
Hamigakiの連結を使用して完全なソリューションを更新します。
c++ - iostreamの管理に役立ちます
削除する必要のある特定の文字シーケンスを含むコンテンツを含むstringbufを取得したとします。
そこで、CRLFペアを削除する必要があるため、次のようにテストしました。
ただし、シーケンスは同じ長さのままです。したがって、次の結果が得られます。
これを行う方法はいくつかあると思いますが、もっとエレガントですが、方法を見つけることができません。
ところで。内側の弦を直接操作できないようです。私は次のような色合いを言います:
ない
また
残念ながら、最初のアプローチを間違えました
前に述べたように、本当の問題はに関連していてboost::asio::streambuf
、私の間違いは、std::istream
テスト目的の別のコンソールアプリケーションでそれを模倣しようとしたことでした。
もちろん、asio :: streambuf yでは、次のように実行することはできません。
したがって、実際の状況は次のとおりです。
混乱をお詫び申し上げます。
質問は同じままです。入力からCRLFまたはその他の文字シーケンスを削除するにはどうすればよいですか。
c++ - ブースト iostream 問題
次のコードを使用して、ブースト内のgzipされた文字列を解凍しようとしています
ただし、この関数を呼び出すたびに (以下のように)
プログラムは常にこの行で失敗します
次の例外を生成します
これについてはまったくわかりません...誰か提案はありますか?
ありがとう
編集:
提案に従って、コードを次のように切り替えます
ただし、コピー時に発生することを除いて、例外は引き続き発生します
iostream - boost::filtering_streambuf と gzip_decompressor()、ファイルから 1 行ずつアクセスする方法
Logparser アプリケーションを作成しましたが、.gz ファイルの解凍を実装したいと考えています。動作するように見えるboost::iostreamsとzlibで試しましたが、圧縮ファイルから取得した入力を処理する方法がわかりません。
これが私がすることです:
ソースファイルの末尾が .gz の場合、このコードが実行されます。最後の行は、解凍されたファイル ストリームを正しく cout に出力します。
しかし、解凍されたファイルから行ごとに取得するにはどうすればよいですか? 私のプログラムは、圧縮されていない場合、 getline(input, transfer) を使用して入力ストリームから行を読み取ります。
解凍したファイルから同じように読みたいのですが、どうすれば改行を取得できますか?
ブーストのデキュメンテーションは、これに関してはあまり役に立ちませんでした。
前もって感謝します!