> d=(adb_descr*)__db_descr.get(db);
так и не узнали что же тут происходит((. тем более преобразование подозрительное.кстати, pragma pack используется?
> /** И ЧТО САМОЕ ИНТЕРЕСНОЕ, И ЭТО ПРОХОДИТ!!! ХОТЯ, ИЗ ФАЙЛА
>РЕАЛЬНО НИЧЕГО НЕ ПРОЧИТАНО!!!**/
откуда известно?
что strace грит?
про valgrind уже сказали.
да, а если вместо:
rd=read(fd,&__rhdr[0],2);
printf("rd=%d\n",rd); /*DEBUG*/
if(rd!=2) return errno; /**** ЗДЕСЬ У НАС ГРАБЛИ ****/
писать так:
if (rd = read(fd, __rhdr, 2)) != 2)
{
printf("debug --- fd %d rd = %d errno %d text error %s\n", fd, rd, errno, strerror(errno));
return errno;
}
то понятнее..
и еще, подозрительные двойные подчеркивания в названиях переменных и функций, как бы с чем-нить не пересеклось (в коде или дебаггере :)