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

 
 
> LwIP это потенциально опасное ПО или нет?, или я неправильно понял и не знаю что и как
AleksBak
сообщение Apr 7 2016, 12:59
Сообщение #1


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

Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364



Вот если я скажем делаю так (использую NetConn API):
Код
struct netconn *conn, *newconn;
err_t err, accept_err;

conn = netconn_new(NETCONN_TCP);

while (1)
{
    if (conn != NULL)
    {
        err = netconn_bind(conn, NULL, 7000);

        if (err == ERR_OK)
        {
            netconn_listen(conn);

            while (1)
            {
                accept_err = netconn_accept(conn, &newconn);

                /* Process the new connection. */
                if (accept_err == ERR_OK)
                {
                    ...
                }
            }
        }
        else
        {
            netconn_delete(conn);
        }
    }
}

Т.е. все "по мануалу" и вопросов тут нет. Но вот вопрос такой тут - в функцию netconn_accept(conn, &newconn); я передал указатель на newconn, а эта функция в ответ обновила его значением указателя на свою локальную переменную (как я понял). Т.е. др. словами говоря - она создала внутри у себя какую-то локальную переменную, а потом второй параметр этой самой функции обновила уже новым значением указателя на эту переменную. И как теперь это понимать - ведь та локальная переменная существует в куче, но может же в любой момент времени быть затерта. Т.е. все работает как бы "до поры - до времени" так получается? Пока не "затрется случайно" та локальная переменная другим чем-то в ОЗУ. Или я не так понял? Или тут эта переменная newconn как бы "неполноценно" используется и в ней только что-то одно временно берется и потому все безопасно работает? Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ar__systems
сообщение Apr 8 2016, 14:08
Сообщение #2


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Вообще это довольно дерзко, не особо и в С понимая, вот так сходу брать и обвинять LwIP в глючности. Я бы посоветовал брать за аксиому, что там все правильно, а если вам кажется иначе, искать ошибки в вашем понимании С вообще и программы в частности.
Go to the top of the page
 
+Quote Post
AleksBak
сообщение Apr 8 2016, 17:24
Сообщение #3


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

Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364



Цитата(ar__systems @ Apr 8 2016, 18:08) *
Вообще это довольно дерзко, не особо и в С понимая, вот так сходу брать и обвинять LwIP в глючности. Я бы посоветовал брать за аксиому, что там все правильно, а если вам кажется иначе, искать ошибки в вашем понимании С вообще и программы в частности.

А Вы в C понимаете?? bb-offtopic.gif Тогда бы и объяснили чего и как . Тут объяснили. bb-offtopic.gif Мне люди тут и объяснили подробно и доходчиво - свое время потратили и ссылку привели и не одну. Вот им сто раз спасибо готов говорить за это (только так и могу - форум ведь все-таки тут). А Вы вот только под конец написали свое мнение по-этому поводу. Резюме так сказать. И что же? bb-offtopic.gif bb-offtopic.gif Вот что. А вообще такое предвзятое отношение к этому LwIP у меня не просто так, а вот стал проверять его работу и что-то нестабильной она показалась сильно. Стал изучать потихоньку что и как и вот в этой теме и спросил один из моментов при этом. В разделе "Для начинающих" между прочим. Ну не приходилось мне особо применять динам. выделение памяти (может даже и к лучшему это вообще-то т.к. темный лес еще тот).

У меня другой сетевой стек работал месяцами не выключаясь. Больше полгода - точно было, а больше не получилось только потому что отключали для плановой замены буферного акк-ра или когда ремонт делали в комнате. А вот насчет LwIP-а что-то я совсем не уверен, что такое будет. Вообще не уверен. Поживем - увидим как говорится.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 10 2016, 08:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AleksBak @ Apr 8 2016, 23:24) *
А Вы в C понимаете?? bb-offtopic.gif Тогда бы и объяснили чего и как . Тут объяснили. bb-offtopic.gif Мне люди тут и объяснили подробно и
...
В разделе "Для начинающих" между прочим. Ну не приходилось мне особо применять динам. выделение памяти (может даже и к лучшему это вообще-то т.к. темный лес еще тот).

Если Вы не можете разобраться в паре строк простого кода, то очевидно, советовать можно только изучать учебник по си - все остальные советы бессмысленны.
Да и разделом Вы ошиблись, тут где-то был раздел "Для совсем начинающих", Вам туда, пока язык не изучите.
Динамическим выделением памяти и кучей в исходной функции даже не пахнет. Откуда Вы его постоянно приплетаете? Создаётся впечатление, что Вы не знаете что это такое, как впрочем и что такое "локальная переменная".
В исходной функции идёт обычный возврат данных через указатель. Если даже такое не понятно - только учебник.
Go to the top of the page
 
+Quote Post
AleksBak
сообщение Apr 10 2016, 08:31
Сообщение #5


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

Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364



Цитата(jcxz @ Apr 10 2016, 12:18) *
...
Динамическим выделением памяти в исходных функциях даже не пахнет...

Что Вы говорите? biggrin.gif Неужели??? Тут значит уже статическое выделение памяти под переменную? Да ну?? Мне тут люди уже ответили и пояснили популярно что и как и где я был не прав. Все я признаю и благодарен им. А Вы можете дальше не пояснять т.к. толку будет абсолютный нуль. Неделю назад Вы конкретно заявили, что STM32F030 это Cortex-M3 серия и что? Запомнил как раз Ваш пост и ник (!). Еще раз повторяю для любителей впустую писать - мне тут все ответили люди и пояснили. Огромное спасибо им. И все. Понятно да?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 10 2016, 08:45
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AleksBak @ Apr 10 2016, 14:31) *
Что Вы говорите? biggrin.gif Неужели??? Тут значит уже статическое выделение памяти под переменную? Да ну??

Ни динамических ни статических выделений памяти там вообще нет никаких. Ни одного.

Цитата(AleksBak @ Apr 10 2016, 14:31) *
Неделю назад Вы конкретно заявили, что STM32F030 это Cortex-M3 серия и что? Запомнил как раз Ваш пост и ник (!).

Ложь. Cortex-M3 - это не серия (серия чего???), это ядро.
И утверждать на каком ядре построен STM32F030 я не мог, так как не знаю этого, и мне это не интересно.

PS: Очевидно Вы даже читать не умеете, то что Вам написали.
Go to the top of the page
 
+Quote Post
AleksBak
сообщение Apr 10 2016, 09:19
Сообщение #7


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

Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364



Цитата(jcxz @ Apr 10 2016, 12:45) *
Выделений памяти там вообще нет никаких. Ни одного.
...

Поясню как это все работает :
Код
struct netconn *newconn;

тут мы фактически выделили память под структуру типа netconn (ее описание см. тут же в этой теме), а далее тут передаем:
sys_arch_mbox_fetch(&conn->acceptmbox, (void **) &newconn, 0);
мы ждем прихода элемент в очередь сообщений и как оно там появится, то его содержимое будет скопировано в выделенный буфер под него т.е. по указателю newconn будет скопирована вся такая структура (ее описание см. тут в этой теме). А функция sys_arch_mbox_fetch эта обертка под получение этого элемента очереди в ОС. А насчет ядра и серии - да я очень грубо ошибся и не пойму как такое слово мог написать. Ядро конечно это. Еще какие ошибки у меня тут есть?? Мне значит тогда совсем закопаться и в школу пойти так да? Вот я сижу-пишу как дурак эти строчки, чего-то доказываю, а двое спиногрызов (дети) реально в этот момент меня задалбливают. cranky.gif Один со своими машинками лезет, а другая чем-то недовольна и кричит громко в ответ.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AleksBak   LwIP это потенциально опасное ПО или нет?   Apr 7 2016, 12:59
- - AleksBak   Я после того как написал свой вопрос все переживал...   Apr 7 2016, 18:22
|- - _NB   Цитата(AleksBak @ Apr 7 2016, 20:22) Т.е....   Apr 7 2016, 18:55
|- - AleksBak   Цитата(_NB @ Apr 7 2016, 22:55) Она возвр...   Apr 8 2016, 03:22
|- - aaarrr   Цитата(AleksBak @ Apr 8 2016, 06:22) ...п...   Apr 8 2016, 06:23
|- - AleksBak   Цитата(aaarrr @ Apr 8 2016, 10:23) Так в ...   Apr 8 2016, 07:08
- - des333   AleksBak: Представьте, Вам нужно написать функцию...   Apr 8 2016, 07:13
|- - AleksBak   Цитата(des333 @ Apr 8 2016, 11:13) ... Пр...   Apr 8 2016, 07:36
|- - des333   Цитата(AleksBak @ Apr 8 2016, 10:36) ...Т...   Apr 8 2016, 07:50
|- - AleksBak   Цитата(des333 @ Apr 8 2016, 11:50) ...нап...   Apr 8 2016, 08:12
|- - des333   Цитата(AleksBak @ Apr 8 2016, 11:12) Да я...   Apr 8 2016, 08:13
|- - AleksBak   Цитата(des333 @ Apr 8 2016, 12:13) Это Ва...   Apr 8 2016, 08:27
|- - Сергей Борщ   QUOTE (AleksBak @ Apr 8 2016, 10:27) 3. и...   Apr 8 2016, 08:58
|- - AleksBak   Цитата(Сергей Борщ @ Apr 8 2016, 12:58) ....   Apr 8 2016, 09:21
|- - Сергей Борщ   QUOTE (AleksBak @ Apr 8 2016, 11:21) и по...   Apr 8 2016, 10:18
|- - AleksBak   Цитата(Сергей Борщ @ Apr 8 2016, 14:18) В...   Apr 8 2016, 10:38
|- - Сергей Борщ   QUOTE (AleksBak @ Apr 8 2016, 12:38) Я ду...   Apr 8 2016, 10:41
- - gosha-z   Я правильно понимаю, что newconn во втором сообщен...   Apr 8 2016, 08:39
|- - AleksBak   Цитата(gosha-z @ Apr 8 2016, 12:39) ...   Apr 8 2016, 08:56
- - AleksBak   Еще пояснение: newconn - это указатель на область ...   Apr 8 2016, 10:31
|- - Сергей Борщ   QUOTE (AleksBak @ Apr 8 2016, 12:31) А ес...   Apr 8 2016, 10:36
|- - AleksBak   Цитата(Сергей Борщ @ Apr 8 2016, 14:36) ....   Apr 8 2016, 10:53
|- - Сергей Борщ   QUOTE (AleksBak @ Apr 8 2016, 12:53) где-...   Apr 8 2016, 10:58
|- - ar__systems   Цитата(AleksBak @ Apr 8 2016, 12:24) У ме...   Apr 9 2016, 20:11
|- - aaarrr   Цитата(AleksBak @ Apr 10 2016, 12:19) Код...   Apr 10 2016, 09:29
|- - jcxz   Цитата(AleksBak @ Apr 10 2016, 15:19) Поя...   Apr 10 2016, 09:32
||- - AleksBak   Цитата(jcxz @ Apr 10 2016, 13:32) ...Где ...   Apr 10 2016, 10:23
||- - jcxz   Цитата(AleksBak @ Apr 10 2016, 16:23) это...   Apr 10 2016, 11:38
||- - AleksBak   Цитата(jcxz @ Apr 10 2016, 15:38) Опять 2...   Apr 10 2016, 18:25
|- - ar__systems   Цитата(AleksBak @ Apr 10 2016, 04:19) Поя...   Apr 11 2016, 13:47
- - gosha-z   MailBox - почтовый ящик. MessageQueue - очередь со...   Apr 10 2016, 18:50
- - AleksBak   Опять я ошибся и перепутал - не "очередь сооб...   Apr 10 2016, 19:24


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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 06:44
Рейтинг@Mail.ru


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