реклама на сайте
подробности

 
 
> ICC6, строки и scanf
lolful
сообщение Jul 29 2011, 11:58
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Как грамотно и безопасно просканировать строчку в ICCAVR6 с помощью scanf? То есть надо защититься от переполнения буфера. Делаю так:
Код
char param[2][20];
sscanf(str, "%19s %19s", param[0], param[1], 20);
Микроконтроллер Mega128 зависает, как и симулятор в AVRStudio 4.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lolful
сообщение Aug 1 2011, 03:18
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Да, ICC - это Image Craft.
В хелпе действительно нет %s в строке формата. Хм, странно. Но если пишешь
Код
sscanf(str, "%s %s", param[0], param[1]);
то срабатывает нормально, но тогда нужно как-то придумать способ не вылезти за пределы буфера.
А как дела обстоят в 7й и 8й версиях ICCAVR?
Go to the top of the page
 
+Quote Post
Палыч
сообщение Aug 1 2011, 05:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(lolful @ Aug 1 2011, 07:18) *
А как дела обстоят в 7й и 8й версиях ICCAVR?
В версии 7.22 раздел Help'а "Standard IO functions" аналогичен соответствующему разделу из версии 6
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 20:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.02191 секунд с 7
ELECTRONIX ©2004-2016