キャンプ
むっちゃドキドキしてきた
undefinedとunspecified
未定義と不定って訳されるらしい。
似て非なるものなので。
http://c-faq.com/ansi/undef.html
を読んでみて、自分の解釈。
implementation-defined : コンパイルに失敗してはならず、なにか振る舞わないといけない。The Standardが許される振る舞いをいくつか書いておいたときは、その中から選ばなくてはならない。また、挙動について文書化されている必要がある。
unspecified : コンパイルに失敗してはならないし、The Standardが何か書いていたときはそこから選ばなくてはならないが、特にどんな挙動をするかを書かなくてもよい。
undefined : 何が起こるかわからない。クラッシュするかもしれないし、おかしな挙動を示してもよい。(「よい」とか書くと変?
ちょっと違うかもしれない。
ところで、これらはANSI Cの奴なので、今時のC++とかは知らない。
impose no particular requirementsってのは、別に挙動が突拍子もないものでも、構わないってことかなと。
undefinedのコードを実行する時にウィルス的挙動発動とかでも、ANSI Cの規格にかなってはいるよということかなと。
TotalMounterをWindows8に入れてしまい、BSoDに陥った人へ
13/08/03,執筆当時の話です。
いやもしかしたら僕だけなのかもしれないけれど。SSDだし。
ところでTotalMounterのRequirementsを見てみよう。
http://www.kernsafe.com/product/totalmounter.aspx
どこにWindows8という文字があるんだい?
対応機種に入ってないのに、特にドライバを新たに入れるようなソフト、気軽に入れるもんじゃない。
症状
- インストール後、そのまま操作を続けていたところ何かの拍子でMEMORY_MANAGEMENTでググれとのメッセージとともにBlue Screen of Death。
- 再起動をされるも、パスワードを入力し、ログインを押した直後くらいに同じBSoDを観測し、再起動。
- 2.に戻る。
解決方法
- ログイン画面にて右下に電源ボタンがあるはず。
- Shiftキーを押しつつ再起動を選択して、出てきたオプションで「トラブルシューティング」、「スタートアップ設定」を押し、「再起動」ボタンをクリック。
- 再起動後、「6」キーを押し、"6 セーフモードとコマンドプロンプトを有効にする"。
- ここでログイン。
- コマンドプロンプトにて、「control.exe」と入力、Enterを押す。
- ちょっと変わったコントロールパネルが出てくるので、いつもどおり「プログラムのアンインストール」画面へと行き、件のTotalMounterをアンインストール。
- アンインストール完了すると、おそらく「再起動しますか?」的メッセージ。再起動する旨のボタンをクリック。
もし選択ダイアログが出てこなければ、コマンドプロンプトに「shutdown.exe /r /t 0」とかするといいと思います。
これで治った。*1
学んだのは、Windows8のセーフモードってF8連打じゃないんですね、ってこと。無駄にF8がすり減った。
それから「セーフモードとコマンドプロンプトを有効にする」っていうのは、「セーフモードを有効にする+コマンドプロンプトを有効にする」ではないっていうこと。だって「セーフモードを有効にする」だと変わらずBSoD吐いたもん。
*1:ほんとはmsconfig.exeを起動して、診断スタートアップを有効にしたりいろいろしたんだけれど、たぶん関係ないはず。もし治らなかったら試してみてもいいのかもしれない。
LEAVE
MOV SP, BP
POP BP