The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Взлом Linux через подключение USB-устройства стал реальность..."
Отправлено коксюзер, 08-Мрт-11 21:20 
> Я написал, как избежать ошибки в подсчёте числа символов. Да, теперь я

Какой ошибки? Давайте по порядку.

Если следовать вашей логике, по которой в len показанного структурного типа должна записываться длина строки без учёта '\0', то мой комментарий, на который вы ответили, был ошибочен весь.

Если так, вы могли бы мне возразить, предположив, что автор структурного типа предлагает хранить в len именно длину строки. Но вы этого не сделали.

Вы предложили семантически эквивалентный макрос, который, по вашим словам, помог бы "избежать ошибки в подсчёте числа символов". То есть, прочитав мой комментарий, вы согласились с наличием ошибки в приведённом литерале... Которую теперь не считаете ошибкой?

Так была ли ошибка? Вот эта непоследовательность и склоняет меня к мысли, что вы просто юлите.

> вижу в чём была ваша ошибка -- вы почему-то считаете, что
> длина строки на единицу больше количества символов, содержащихся в ней.

Нет. Я считаю, что в len должен храниться размер массива символов, включая '\0', поскольку в операциях со значениями размеров строк без учёта '\0' чаще допускаются ошибки. И авторы strl-функций со мной согласны. К тому же, терминирующий нуль - анахронизм, мешающий применять wide-кодировки с символами постоянной длины, содержащими нулевые байты.

> Функции strl* принимают размер буфера, который содержит строку и терминирующий NUL. Его
> размер должен быть по крайней мере на единицу больше предполагаемой длины
> строки.

По-моему, теперь вы делаете вид, что терминирующий '\0' не является частью строки в Си: "строку и терминирующий NUL" - если это ваша изначальная точка зрения, то почему она такая противоречивая и идёт в разрез со стандартной терминологией?

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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