H>Нет, я не про то. Зачем в нее передается размер буфера и еще параметр count (Maximum number of characters to store, or _TRUNCATE.). H>Чет не пойму смысла в этом..
It should also be noted that the secure functions do not prevent or correct security errors;
rather, they catch errors when they occur. They perform additional checks for error conditions,
and in the case of an error, they invoke an error handler.
Some of the security enhancements include the following:
Здравствуйте, Hayabusa, Вы писали:
H>Кто может русским языком объяснить разницу между этими функциями?
Ну, семейство С-шных функций sprintf признанно опасным, и им на замену предлагаются существенно С++-ные шаблоны функций и функции семейства _s (тут s от слова "безопасный").
Соответственно, если весь код переписать с С-шных, опасных на С++ные -- безопасные, то типа переполнения буферов не пройдут больше в этом месте...
H>И зачем вообще нужна функция _snprintf_s? ))
Ну семейство _s-функций так спроектировано, что бы переход от опасных к безопасным можно было выполнить, делая простые, формальные правки...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Ну, семейство С-шных функций sprintf признанно опасным, и им на замену предлагаются существенно С++-ные шаблоны функций и функции семейства _s (тут s от слова "безопасный"). E>Соответственно, если весь код переписать с С-шных, опасных на С++ные -- безопасные, то типа переполнения буферов не пройдут больше в этом месте...
Я в курсе про безопасные функции с суффиксом _s, просто мне кажется, что эти функции делают одно и то же
E>Ну семейство _s-функций так спроектировано, что бы переход от опасных к безопасным можно было выполнить, делая простые, формальные правки...
Нет, я не про то. Зачем в нее передается размер буфера и еще параметр count (Maximum number of characters to store, or _TRUNCATE.).
Чет не пойму смысла в этом..
Здравствуйте, i3F, Вы писали:
i3F>Если потребуется записать в buffer больше символов, чем sizeOfBuffer, то произойдет ошибка и программа сломается. i3F>При записи в buffer строка при необходимости усекается до длины count. i3F>При этом программа не ломается. i3F>Такое поведение бывает необходимо.
Здравствуйте, kaa.python, Вы писали:
KP>Термин "фатальный недостаток" тебе знаком? Разработчикам из МС он очень близок, и эти функции одно из проявлений этого явления.