Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Признак нереентерабельности - использование статических переменных (или глобальных, причем не во всех случаях). Обычно реентерабельность описана в документации. Кстати бывает два вида либов - single threaded и multi. Тоже показатель.
Отправлено
SM
15 мая 2007 г. 10:35
В ответ на:
Вопрос по реентабельности функций на Си(+)
отправлено <font color=gray>Quasy</font> 15 мая 2007 г. 10:12
Составить ответ
|
Вернуться на конференцию
Ответы
глобальные переменные могут использоваться в реентрантных функциях. и статические могут.
—
kan
(15.05.2007 10:52:18
62.205.163.4
,
пустое
)
Индикатор реентерабельности нужен, лакмус, фенолфталеин! Пока в иаровских либах признаков не нашел :(
—
Quasy
(15.05.2007 10:56:24
80.243.9.34
,
пустое
)
Если программа рухнула, значит не реентерабельная :)
—
Mebius
(15.05.2007 11:04:56
195.28.47.34
,
пустое
)
За час? сутки? месяц? Дом на херовых сваях стремно лепить...
—
Quasy
(15.05.2007 11:12:24
80.243.9.34
,
пустое
)
Для PC я специальные тестовые программки пишу, чтобы интенсивно использовались общие ресурсы из двух веток. Иногда через несколько минут она всё-же начинает глючить. Ищу ашыпки. Нахожу...
—
CD_Eater
(15.05.2007 11:12:23
89.179.240.72
,
пустое
)
Только документация.
—
SM
(15.05.2007 10:58:49
80.92.255.53
,
пустое
)
Или вынимательное изучение исходника ф-ции.
—
SM
(15.05.2007 10:59:35
80.92.255.53
,
пустое
)
а нахрена это нужно знать вообще когда функция уже готова, например речь шла о printf - ну есть там такие механизмы и ЧО!?
—
kan
(15.05.2007 11:07:6
62.205.163.4
,
пустое
)
А если я ее в мультитредовом приложении использую? С возможностью параллельного исполнения? Хотя именно в контектсе printf это бред :) На консоли такая лажа выйдет....
—
SM
(15.05.2007 12:40:56
80.92.255.53
,
пустое
)
добавлю, типа, про симафоры - легким движением руки нереентерабельная функция превращается в реентерабельную
—
yes
(15.05.2007 13:28:20
87.236.81.130
,
пустое
)
если вместе с текстом выводятся ESCAPE последовательности то и для printf имеет смысл реентерабельность
—
Тема
(15.05.2007 12:58:19
81.28.210.194
,
пустое
)
Это каким образом? Хоть какой поток выводить, если один в другой вклинится, бред получится. Другое дело, если речь на самом деле про sprintf.
—
SM
(15.05.2007 13:01:58
80.92.255.53
,
пустое
)
В Keil все библиотечные функции тщательно описаны в плане реентерабельности... (по крайней мере так было для MCS51 лет 8 назад) printf точно не входила в их число...
—
Гудвин
(15.05.2007 11:20:18
195.133.109.232
,
пустое
)
не понимаю, как функция доступа к одному ресурсу (com-порт для принтфа) может быть реентерабельной?
—
yes
(15.05.2007 13:33:5
87.236.81.130
, 31 байт)
Элементарно. Если например используется какая-то глобальная переменная для хранения чего-то промежуточного (например в контексте принтфа буфер строки). Вот и сглючит нипадеццки, несмотря что ресурс может и обсемафорен.
—
SM
(15.05.2007 14:34:53
80.92.255.53
,
пустое
)
семафор - вызов/возврат из функции (если мое понимание : реентерабельность - необходимое условие для использования в многопоточной обработке и больше не зачем не нужно, верно)
—
yes
(15.05.2007 20:49:12
87.236.81.130
,
пустое
)
да все попутали - реентерабельность и мультитредовость - совершенно разные вещи. А ф-ция такая - запросто, например принимая номер кома как параметр
—
DASM
(15.05.2007 13:49:16
212.58.208.91
,
пустое
)
а практически какая разница (printf, без рекурсии)?
—
yes
(15.05.2007 20:42:21
87.236.81.130
,
пустое
)
Точно, есть. Хоть какая-то опора будет :) Кстати, в СLIB ИАРа нашел про formatted_write и formatted_read (база для функцию printf): "Function is concurrently reusable (reentrant)". Вот и верь после этого людям :)
—
Quasy
(15.05.2007 12:08:35
80.243.9.34
,
пустое
)
ну так это 51-ый убогий без стекового фрейма - там эта реентерабельность большой кровью дается. А нормальных процах еще извратиться нерентерабельную сделать
—
DASM
(15.05.2007 12:29:38
212.58.208.91
,
пустое
)
Запрещу не ее время переключение задач, или заменюбля.
—
Quasy
(15.05.2007 11:17:1
80.243.9.34
,
пустое
)
а что за операционка?
—
kan
(15.05.2007 11:47:37
62.205.163.4
,
пустое
)
scmRTOS хотел... А не все ли равно, хоть простая карусель
—
Quasy
(15.05.2007 11:53:28
80.243.9.34
,
пустое
)
Читать умеем? Я и написал, что не во всех случаях.
—
SM
(15.05.2007 10:54:1
80.92.255.53
,
пустое
)
сори:-)
—
kan
(15.05.2007 11:07:50
62.205.163.4
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 123:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru