2011-05-01から1ヶ月間の記事一覧

エンディアン変換プログラム

ネットワークプログラムを組む際に,Big Endian (Network Byte Order) Little Endian (x86) のエンディアン変換プログラムを書いてみた.(ほとんど参考サイトの写経ともいう.) /** @file endian_utility.hpp * @brief Header file for utility fanctions …

singed char と unsigned char の違いに関するメモ

バイナリデータをごりごり直接操作する場合,1byte(8bit)型としてchar型を使用することがある.このとき,符号(signed / unsigned) を意識しないと思わぬ罠にはまるという話の経験談. 結論 1byte型は"unsigned" char型を意識して使うほうがよい. ポイント …

Hex dump (16進数表示) のプログラム (Boost.Format 使用)

16進数ダンプの関数を書いてみた.(Debugger使うのはおいといて・・・.)せっかくなので,Boost.Formatを使ってみる. /** @file hex_dump.hpp * @brief Header file for fanction to display variable in hex. */ #ifndef HEX_DUMP_HPP__INCLUDED #define…

Windows の I/O port 制御のメモ

Windows(NT系)ではユーザーモードからI/O portの制御ができないようだ.(カーネルモードからドライバを使えということらしい.)ユーザーモードからI/O制御するためのDLL類を色々な人が提供している.定番がよくわからないが,とりあえずメモ: WinIo, http…

Boost.Asio の Timer精度調査 (Windows環境)

要旨 目的: Boost.Asio には Timerクラスである deadline_timerがある.この時間精度について調べてみる. 調査環境: Boost 1.44.0, Windows XP (x64) 結論: date_timeライブラリに依存している.調査環境におけるdate_timeライブラリの時間取得関数はGet…

SetThreadPriority と SetThreadPriority のメモ

Windowsでプロセスやスレッドの優先度を指定する方法のメモ.※OSのバージョン等によって,設定値や動作が違う場合がある模様なので注意. 優先度の基本的な考え方 0(もっとも低い)〜31(もっとも高い)であらわされる優先度によって,スレッドの実行をスケジ…

SetThreadAffinityMask関数のメモ

http://msdn.microsoft.com/ja-jp/library/cc429346.aspx におけるSetThreadAffinityMask 関数の説明によれば, DWORD SetThreadAffinityMask ( HANDLE hThread, // 操作対象スレッドのハンドル DWORD dwThreadAffinityMask // スレッドアフィニティマスク )…