これが私の問題を解決するための最良の方法であるかどうか疑問に思っています。
必要な情報が保持されているバイナリファイルの特定のオフセットの値を知っています...私がやりたいのは、オフセットにジャンプして、その場所から開始して特定のバイト数を読み取ることです。
グーグルを使用した後、私の最善の策は、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()を置くことだけです、そしてそれはその場所を探します次に、そこから読み取ります。