タグ

ブックマーク / cpplover.blogspot.com (5)

  • rm -rfしちゃったけどどうする

    rm -rf remains rm -rfの後に残りしもの 遊びのために、筆者は新しいLinuxサーバーを立ち上げて、rootでrm -rf /を実行して、何が残るかをみてみた。どうやら、今のrmというのは筆者のようなアホを相手にしなければならない未来に生きているようなので、実際に実行するには、--no-preserve-rootをつける必要があった。 # rm -rf --no-preserve-root / かかるおろかなる行為の後では、 /bin/ls /bin/cat /bin/chmod /usr/bin/file のような、偉大なるツールのたぐいはみな消え失せてしまった。まだ、ssh接続とbashセッションは生きているはずだ。つまり、bashの組み込みコマンドであるechoとかは残っているということだ。 Bashマクガイバーたれ root@rmrf:/# ls -bash: /

    rm -rfしちゃったけどどうする
  • プログラミング認可制の日は近い

    高木浩光@自宅の日記 - ウイルス罪法案、バグ放置が提供罪に該当する事態は「ある」と法務省見解 政府は、バグ放置が罪せらるとの見解を発表した。また一歩、日が後退した瞬間である。 そもそも、放置とは何を言うのか。大部分のソフトウェアのバグフィクス、特にセキュリティに関するバグというのは、バグ発見者の善意によってなりたっている。バグを発見したものが、ソフトウェアに対して責任をもつ会社または個人に、秘密のうちに連絡をとり、バグの内容を伝える。責任者は、秘密裏のうちにバグを直し、アップデートパッチを公開する。バグの具体的な内容が公開されるのは、パッチ公開後である。この過程を経ずしていきなりバグが公になることを、ゼロデイという。ゼロデイは、マルウェアが未知のバグを利用していたり、またバグ発見者が、何らかの理由によって(たいていは、無責任な責任者にあきれて)、いきなり公開したりすることで起こる。 バ

    tarao
    tarao 2011/05/29
  • 本の虫: 邪悪なC形式のキャストにしかできないこと

    注意:邪悪で汚らわしいC形式のキャストは、いやしくもC++プログラマたる者は、使うべからず C++では、玉虫色のC形式のキャストの機能を、三つに分割した。static_cast、reinterpret_cast、const_castである。しかし、この三種のキャストでは、C形式のキャストを完全に代替できないという声をよく聞く。曰く、「どうしても書けないキャストがある」と。 それはよく聞く話だが、では実際にどのようなキャストなのかということは、誰も審らかにしない。誰も知らないキャストであれば、特に使えなくても問題ないはずだ。ただし、「C形式のキャストならばできるキャストが、新しいキャストを組み合わせてもできない。どんなキャストかは知らないが、とにかくできないと聞いている。故に新しいキャストはクソだ」などという論調で、C++の改良されたキャストを使わぬC畑の外道がしゃしゃり出てくるのも困る。そ

    tarao
    tarao 2010/07/07
  • それ、C++0xでできるよ!

    コンセプトなしでテンプラ引数が、特定のメンバ関数を持ってるか調べられるの? SFINAEでできるよ! // Overload Resolutionと併用する場合。 class has_xxx { typedef char yes_type ; typedef struct { char c[8]; } no_type ; // Unified Function Syntaxが入れば、autoではなく[]になる。 template< typename U > static auto check( void ) -> decltype( std::value<U>.xxx(), yes_type); template< typename U > static no_type check( void ) ; public: static bool const value = std::is_sa

    tarao
    tarao 2010/01/24
  • 本の虫: C++0xの新しい乱数ライブラリ、random

    注意:最新ドラフトのN3000のrandomの規定は、コンセプトが却下される前の文面であり、今後、変更があると思われる。 C++は標準ライブラリが貧弱であるとは、よく言われることだ。ことに、乱数に関しては、貧弱の極みである。ご存じのように、C++は、Cから標準ライブラリを引き継いでいる。rand()だ。これは、0からRAND_MAXまでの値を返すと規定されている。RAND_MAXは実装によって異なるが、ほとんどの処理系では、32767である。現代の乱数需要を満たすには、あまりにも小さすぎる。 この状況を打破すべく、C++0xには新しい乱数のライブラリが盛り込まれた。randomである。これはBoostの実装を元にしているのだが、Boostとは少し違っている。今回はそのrandomを、浅く触りだけ紹介しようと思う。というのも、ライブラリの細かなメンバ関数の一つ一つまで説明するのは、甚だ冗長で

    tarao
    tarao 2009/11/25
    boostとの違い
  • 1