Войти
ФлеймФорумПрограммирование

Почему сишные функции не обмазали нормальными ассертами? (5 стр)

Страницы: 14 5 6 79 Следующая »
#60
19:47, 19 мар. 2019

beejah
>Нет, поэтому и говорю - ставь ассерт. Только не (только) там, где у тебя мусор уже в memcpy пошел, а там, где он появился.
Ну и какой поинт лепить 100500 ассертов в разных местах, когда можно влепить один единственный внутриях самопальной memcpy?

Vlad2001_MFS
>У тебя есть права удалять комменты? Может пригодиться.
Я их никогда не удаляю, не вижу нужным.


#61
19:57, 19 мар. 2019

nes
> Ну и какой поинт лепить 100500 ассертов в разных местах, когда можно влепить
> один единственный внутриях самопальной memcpy?
UNIX - 50 лет. И Вы спрашиваете, почему там не учли пожелания ниосиляторов-однодневок?
Да потому, что ассерты - это погремушка для крестопроблемцев.

#62
20:01, 19 мар. 2019

gudleifr
Ассерты били еще в сях, крестопроблемцы тут при чем?

#63
20:11, 19 мар. 2019

nes
> Ассерты били еще в сях

UNIX, C - 50 лет
ANSI C - 35 лет
assert.h - 20 лет
мода на assert() - 5 лет

Как-то так...

#64
20:12, 19 мар. 2019

gudleifr
Имхо 20 лет, вполне себе срок, чтоб считать их частью Сей.

#65
20:15, 19 мар. 2019

nes
> Имхо 20 лет, вполне себе срок, чтоб считать их частью Сей
Но недостаточно, чтобы вернуться во времени еще на 30 лет назад и "все исправить"...

#66
20:39, 19 мар. 2019

Нашел вам assert за 79-й год
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include

#67
20:46, 19 мар. 2019

entryway
Обратите внимание, что он реализован еще "нестандартно" и в таком виде не может быть использован внутри низкоуровневых ф-ий, т.к. есть опасность рекурсии.

#68
20:49, 19 мар. 2019

entryway
Вау

#69
21:05, 19 мар. 2019

Владимирский ассЕрт - кодер серверный,
Без хвостика массив - зла немерянно,
Лежит на сердце тяжкий груз,
Владимирский ассЕрт - кодер серверный,
Дебажной сборки ждал - жизнь разменяна,
Но не мемсет обычно губит, а одиннадцатый плюс.

#70
21:17, 19 мар. 2019

entryway
Че-то страница не грузится.

#71
23:20, 19 мар. 2019

nes
> Ну и какой поинт лепить 100500 ассертов в разных местах, когда можно влепить
> один единственный внутриях самопальной memcpy?
А потом прибежать на форум с криком - почему сишные функции не обмазаны "нормальным" колстеком?


UPD: но в общем никто не может тебе помешать перекрыть системный вызов врапером (через кастомную библиотеку) и делать ассерт или что там еще нужно. А потом дергать оригинал полученный через dlsym()

#72
8:11, 20 мар. 2019

exchg
Это как чистить зубы через задницу.

#73
8:29, 20 мар. 2019

nes
> Это как чистить зубы через задницу.
Уничтожим проблему изнутри!

#74
10:39, 20 мар. 2019

FordPerfect
> Как насчёт не использовать memcpy? Вообще никогда?
Это же откровенно вредный совет в духе добавления хвостиков к массивам "для безопасности".
Если  модель, построенная программистом, предполагает что буферы никогда не пересекутся, а они пересеклись - это признак баги в программе и надо сразу делать abort() а не пытаться "пофиксить" это с помощью memmove.
Тоесть проверка все равно нужна даже в релизе (здесь есть тонкий момент когда используют memcpy вместо union), но она должна сразу валить программу.

я слоупок
Страницы: 14 5 6 79 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.