タグ

2010年8月3日のブックマーク (5件)

  • malloc(3)のメモリ管理構造 VA Linux Systems Japan

    これらの問題を検出する為の色々なツールも存在しますが、mallocライブラリ側でも簡単なチェック機能が備えられています。これは予めライブラリ内に組み込まれている為、簡単に使用することができ、アプリケーション側の修正も必要ありません。ただ簡単な仕組みの為、余り詳細なチェックは行えません。上記の(1)と(2)には対応が可能です。以下、この機能の仕組みについて説明します。 これは環境変数MALLOC_CHECK_に特定の値を設定する事により、ライブラリ側にデバッグ機能使用の通知を行いチェック機能を働かせるものです。この機能はmallocのmanにも書かれています。ここではライブラリでの内部的な処理についても述べて行きます。 MALLOC_CHECK_の値はpublic_mALLOc()コール時の最初の処理でcheck_actionという静的変数に設定されます。これは、public_mALLO

  • Wataru's memo(2006-07-30)

    ● [UNIX] malloc failure (その4) いよいよ、malloc failureシリーズも最終回。前回作成した malloc_null.c は、ライブラリ中の malloc をハイジャックし、ゼロを呼び出し元に返すだけでしたが、今回は来の malloc を内部で呼び出し、メモリ割り当てを実行できる wrapper function に挑戦してみましょう。 Wrapper function を実装するためには、malloc ライブラリ関数のエントリアドレスの取得など初期化処理が必要になります。一般のアプリケーションであれば、処理の前後で初期化・終了処理を行うことは簡単ですが、共有オブジェクトで実現するとなると、はてと悩んでしまいます。 実は、GCCにはこのような場合のために、特別な仕掛けが用意されているのです。 __attribute__((constructor)),

  • Boost.Optional と Boost.InPlaceFactory で初期化遅延 - 野良C++erの雑記帳

    boost::optional は「値 T あるいは無効値」を取ることのできるクラスです。 通常このクラスは、「失敗するかもしれない」関数の戻り値として使用されます: #include <boost/optional.hpp> #include <iostream> // 例として std::getline を optional で実装してみる boost::optional<std::string> getline_optional( std::istream& in ) { std::string result; if( getline( in, result ) ) { // 行の読み取りに成功 return result; } // 失敗。無効値( boost::none )を返す return boost::none; } int main() { // cat コマンドっぽい挙

    Boost.Optional と Boost.InPlaceFactory で初期化遅延 - 野良C++erの雑記帳
    craf
    craf 2010/08/03
  • N3059

    👻 道化師 🃏 @wraith13 次の(  )に当てはまる適切な言葉を述べよ。(10点):「(std::)tie が(  )していてよ。」 [電波注意] 2010-04-28 00:43:41

    N3059
  • 知ってて良かった::new - イグトランスの頭の中

    今日はこんな話です。 boost::in_placeを使ってみようとした。エラーになる例に遭遇。Boost側を直せばいい(そのためには、こんなの誰が知っているんだという::new構文の出番)この前、Gdiplusを使っていたプログラムでちょうどin_placeとoptionalの組み合わせが使えそうだと気付きました。ちょうど信仰「ワンフェーズコンストラクティズム」やTogetter – まとめ「N3059」が世に公表されるなどという時流だったわけです。 ところが、ダメでした。謎のエラーになるのです。そのときは原因追及を諦めてboost::scoped_ptrで我慢しました。こんなコードで同じエラーを見られます。 #include <new> #include <memory> #include <boost/optional.hpp> #include <boost/utility/in_

    知ってて良かった::new - イグトランスの頭の中
    craf
    craf 2010/08/03