Hola a todos,
Tengo un programa cuya mision es leer datos de un archivo que emula un sistema de archivos ext2. Para ello me pasan dos archivos ext2.c y ext2.h, donde en el ultimo hay definido un struct como el siguiente:
struct ext2_sb {
uint32_t s_inodes_count;
uint32_t s_blocks_count;
...
uint32_t s_blocks_per_group;
...
};
Leo del archivo con read (fd, &a, sizeof(a));
Esto no da ninguna problema ya que los valores de la variables del struct son coherentes (me los muestra por pantalla). En mi caso:
blocks_count=10240
blocks_per_group=8192
El problema esta cuando calculo f=a.s_blocks_count/a.s_blocks_per_group.
Esto deberia dar un valor superior a 1 e inferior a 2, pero me da 1 exactamente.
He probado mostrando por pantalla los valores de las variables:
printf("Variable 1: %d",a.s_blocks_count);
printf("Variable 2: %d",aa.s_blocks_per_group);
Y resulta que me dice que valen 1 las dos!
¿Alguien sabe porque me pasa esto tan raro?
Muchas gracias por la ayuda