Now reading exactly 4 bytes instead of sizeof(long)