これが私の問題を解決する最善の方法であるかどうか疑問に思っています。Cでバイナリファイルの特定の場所に移動し(fseekを使用)、その場所から読み取る(freadを使用)
私は、必要な情報が保持されているバイナリファイルの特定のオフセットの値を知っています...私がしたいのは、オフセットにジャンプし、その位置から開始して一定量のバイトを読み込むことです。
Googleを使用した後、私は、fseek()を使用してオフセットの位置に移動し、fread()を使用してその位置からバイト数を読み取ることが最善の策であると判断しました。
これは正しいと思いますか?もしそうなら、そのようにするのが最善でしょうか? 2つの方法を組み合わせる方法
私が正しくない場合は、代わりに何を提案しますか?
ご協力いただきありがとうございます。
マット
編集:
私は(関数freadのチュートリアルに従っ)、以下にそれを調整する:
`#include <stdio.h>
int main()
{
FILE *f;
char buffer[11];
if (f = fopen("comm_array2.img", "rt"))
{
fread(buffer, 1, 10, f);
buffer[10] = 0;
fclose(f);
printf("first 10 characters of the file:\n%s\n", buffer);
}
return 0;
}`
だから私は 'comm_array2.img' ファイルを使用し、ファイルから最初の10文字を読み取ります。
しかし、私はそれを理解して何から、これはスタート・オブ・ファイルから行く、私は
この作るより多くの意味です(オフセット)いくつかのインプレース・イン・ファイルから行きたいですか?
編集ナンバー2:
私が少し薄暗いされていたことが表示されます、そしてすべてのことが必要とされている(それは私の試みからと思われる)私が持っている)のfread(前のfseek()を置くことです上記のコードでは、その場所を探してそこから読み込みます。
はい。 fseek()とfread()を使用します。どのコードを試しましたか? – erisco
はい、そうですが、あなたの質問や問題は何ですか? –
ウェブ上でそれらを使用する方法を示すチュートリアルがあります。検索用語「fseek fread Cチュートリアル」を使用して、いくつかを見つけるのは簡単です。あなたは何かを経験しましたか? – gbulmer