The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

C/C++ 64bit. Глюк при сравнении чисел, yerdna (ok), 24-Ноя-08, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


2. "C/C++ 64bit. Глюк при сравнении чисел"  +/
Сообщение от yerdnaemail (ok), 25-Ноя-08, 00:43 
Vic спасибо за внимание.

>тут бы if (!buffer) perror("");
>все проверки всех действий сделаны, везде?

Да, просто не стал засарять форум.

>по ману fread надо еще проверять ошибку и конец файла через feof(),

Говорит что конец файла не достигнут, хотя на самом деле он все считал в память.

>ferror()

ошибок нет.

>если выше в malloc() для чаров sizeof() делаем, то и тут sizeof(char)
>для единообразия писать надо вместо 1  :)

Учту.

>по мелочи: fprintf(stderr,""); // уже идиома, не цепляет глаз и читается проще
>чем fputs()

Тоже учту

>+ strace(), dbg, так же обратить внимание на ключи оптимизации и т.п.
>а то сравнение не работающее для одиноковых чисел - вроде смахивает
>на убитый стек.

Strace работает только на i386 у меня ядро amd64. dbg запускал, но только ничего не нашел, наверно я неумют ею пользоваться.

Я забыл написать, что система у меня 64битная. (freebsd amd64)
Сегодня когда выводил через printf числа, указал формат %lu и вот что получилось
lSize  = 2205089792
result = 18446744071619674112
а когда указываю формат %u ,то в обеих 2205089792

Может есть какие-то идеи?

Ответить | Правка | Наверх | Cообщить модератору

3. "C/C++ 64bit. Глюк при сравнении чисел"  +/
Сообщение от angra (ok), 25-Ноя-08, 01:16 
Есть мысль что вам нужно прочитать наконец про машинное представление чисел, особенно знаковых.
Ответить | Правка | Наверх | Cообщить модератору

4. "C/C++ 64bit. Глюк при сравнении чисел"  +/
Сообщение от vic (??), 25-Ноя-08, 14:07 
>Есть мысль что вам нужно прочитать наконец про машинное представление чисел, особенно
>знаковых.

И включить -Wall чтобы gcc на printf() вываливал варнинг по поводу несоответствия спецификатора и типа выводимого значения. Помогает даже если в курсе, но случайно ошибся :)

Ответить | Правка | Наверх | Cообщить модератору

5. "C/C++ 64bit. Глюк при сравнении чисел"  +/
Сообщение от vic (??), 25-Ноя-08, 14:14 
>Может есть какие-то идеи?

посмотреть sizeof(size_t), sizeof(off_t) и почитать про включение поддержки больших файлов для freebsd, а то если они 8 байт (так скорее всего и есть), то больше 2ГБ ну никак :)


Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

6. "C/C++ 64bit. Глюк при сравнении чисел"  +/
Сообщение от SunRock (?), 26-Ноя-08, 22:56 
>посмотреть sizeof(size_t), sizeof(off_t)
>а то если они 8 байт (так скорее всего и есть), то больше 2ГБ ну никак :)

8589934592 GB математик хренов :)  

Ответить | Правка | Наверх | Cообщить модератору

7. "C/C++ 64bit. Глюк при сравнении чисел"  +/
Сообщение от vic (??), 27-Ноя-08, 14:21 
>>посмотреть sizeof(size_t), sizeof(off_t)
>>а то если они 8 байт (так скорее всего и есть), то больше 2ГБ ну никак :)
>
>8589934592 GB математик хренов :)

в хренах именно столько

Ответить | Правка | Наверх | Cообщить модератору

8. "C/C++ 64bit. Глюк при сравнении чисел"  +/
Сообщение от vic (??), 27-Ноя-08, 14:40 
>>>посмотреть sizeof(size_t), sizeof(off_t)
>>>а то если они 8 байт (так скорее всего и есть), то больше 2ГБ ну никак :)
>>
>>8589934592 GB математик хренов :)
>
>в хренах именно столько

в том смысле что если они не 8, а 4 байта, я ступил =)


Ответить | Правка | Наверх | Cообщить модератору

10. "C/C++ 64bit. Глюк при сравнении чисел"  +/
Сообщение от Michelnok (??), 28-Ноя-08, 03:08 
>
>Я забыл написать, что система у меня 64битная. (freebsd amd64)
>Сегодня когда выводил через printf числа, указал формат %lu и вот что
>получилось
>lSize  = 2205089792
>result = 18446744071619674112
>а когда указываю формат %u ,то в обеих 2205089792
>
>Может есть какие-то идеи?

Количество считанных из файла байт потрясает. Дайте мне два таких винта :)
Переменные типа size_t выводи с форматом %zu

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру