Я пытаюсь получить заголовок файла dmg. Я видел это a link , которые мне очень помогают. Итак, я делаю программу на C++, чтобы получить все это.Заголовок Apple Disk Image
здесь:
struct Header
{
int img;
char tag[4];
short size;
short version;
int format;
int flag;
int num_block;
int offset;
int length;
int offset_comment;
int length_comment;
int offset_creator;
int length_creator;
char space[16];
};
void read_header(const char *path)
{
Header head;
FILE *file = fopen(path, "rb");
fread(&head, 1, sizeof(Header), file);
printf(" size short = %d\n", sizeof(short));
printf(" size int = %d\n", sizeof(int));
printf(" size struct = %d\n", sizeof(Header));
printf("img %d\n", head.img);
printf("tag %s\n", head.tag);
printf("size %d\n", head.size);
printf("version %d\n", head.version);
printf("format %d\n", head.format);
printf("flag %d\n", head.flag);
printf("num_block %d\n", head.num_block);
printf("offset %d\n", head.offset);
printf("length %d\n", head.length);
printf("offset_comment %d\n", head.offset_comment);
printf("length_comment %d\n", head.length_comment);
printf("offset_creator %d\n", head.offset_creator);
printf("length_creator %d\n", head.length_creator);
}
И я получаю это:
size short = 2
size int = 4
size struct = 64
img 152133
tag
size 0
version 0
format 0
flag 0
num_block 0
offset 0
length 0
offset_comment 0
length_comment 0
offset_creator 0
length_creator 0
Я не знаю, почему все мое значение равны нулю, кроме первого. Мои файлы dmg хороши, и я могу открыть его. Кто-нибудь знает, почему я получаю нулевое значение?
Попробуйте использовать '[[упакованный]]' (C++ 11) или '__attribute __ ((упакованный))' (C++ 03, GCC/лязг). –
Прошу прощения, но где я могу поместить это ключевое слово? – kavaliero
Я пытаюсь добавить его в конце моей структуры следующим образом: struct Header {...} __ атрибут __ ((__ставленный__)); но id ничего не сделал, всегда тот же результат – kavaliero