私は私が持っているこの小さな問題と非常に混乱しています。インデックス付けされていないファイル形式のヘッダーがあります。(より具体的にはID3ヘッダー)これで、このヘッダーは、データが実際にはID3タグ(TAG
文字列btw)であることを確認するために、文字列または3バイトを格納します。ポイントは、TAG
ファイル形式のこれがnullで終了しないことです。 。したがって、実行できることが2つあります。
- ファイル全体をロードし、
fread
終了していない文字列を比較するには、を使用しますstrncmp
。だが:- これはハッキーに聞こえます
- 誰かがそれを開いて、これについての事前の知識なしに文字列を操作しようとするとどうなりますか?
- もう1つのオプションは、ファイルをロードすることですが、C構造体はファイル形式に正確にマップする必要はなく、適切なnullターミネータを含めてから、一意の呼び出しを使用して各メンバーをロードする必要があります。しかし、これもハッキーで退屈な感じがします。
特にそのようなものを扱った実践的な経験を持つ人々からの助けはありがたいです。