0
struct FATEntry entry1;
    strcpy(entry1.name, "abc");
    entry1.next = 3;
    entry1.size = 10;
    entry1.mtime = 100;

    struct FATEntry entry2;
    strcpy(entry1.name, "");
    entry1.next = 0;
    entry1.size = 0;
    entry1.mtime = 0;

    struct FATEntry entry3;
    strcpy(entry1.name, "foo");
    entry1.next = 324;
    entry1.size = 3;
    entry1.mtime = 434;

    file1 = fopen("filesys", "r+b");
    fwrite(&entry1, sizeof(struct FATEntry), 1, file1);


    fseek(file1,BLOCK_SIZE,SEEK_SET);


    fwrite(&entry3, sizeof(struct FATEntry), 1, file1);

fseek(file1,BLOCK_SIZE,SEEK_SET);


    fread(&entry2, sizeof(struct FATEntry), 1, file1);
    fclose(file1);

したがって、基本的にここでやろうとしているのは、entry1 をファイルに書き込み、512 バイトを探し (ブロックになるため)、entry3 をファイルに書き込むことです。しかし、私が fread すると、entry3 から entry2 に値を取得することになっていますが、entry2 に表示されるのは乱数だけです。私は何を間違っていますか?

4

1 に答える 1