質問: memcmp バイナリデータの比較方法 ------------------------------------ visual studio 2008 pro vc++ ------------------------------------ 基本的な質問で申し訳ないのですが、memcmp()などでバイナリデータとの比較方法について教えてください。 例えばバイナリファイルを開き、その先頭から10バイト分が特定のバイトコードであるかを調べ用とした場合、fread()で10バイト分読み込んだバッファーをmemcmpで比較すればよろしいのでしょうか? また、その際に比較対象のバイトコードはどのように指定したらよいのでしょうか? --------------------------------- 例:比較対象のバイトコードが0xffffffffffffffffffffの場合 fread( szbuffer, 1, 10, fp ); memcmp( szbuffer, ???, 10 ); ---------------------------------
回答: もちろん「先頭から 10バイト読み込み memcmp で比較」すれば ok です. 比較対象は「10バイト (以上) の大きさを持つオブジェクト」になります. (unsigned) char の配列とするのが普通かな. 例えば unsigned char bytecode[] = { 0xff, 0xff, ..., 0xff }; に対して memcmp(szbuffer, bytecode, 10); みたいな感じですね.