-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.ne
ws.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for
-mail
Newsgroups: pl.misc.elektronika
X-Mozilla-News-Host: news://news.tpi.pl:119
From: Atlantis <m...@w...pl>
Subject: esp8266 i snprintf()
Date: Sun, 23 Jul 2017 18:42:29 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.2.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Language: pl
Content-Transfer-Encoding: 8bit
Lines: 29
Message-ID: <5974d1f3$0$661$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.5.228.198
X-Trace: 1500828147 unt-rea-b-01.news.neostrada.pl 661 83.5.228.198:64240
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.misc.elektronika:721254
[ ukryj nagłówki ]Do tej pory we wszystkich moich projektach, zgodnie z zalecaną praktyką
stosowałem funkcję snprintf() zamiast sprintf(), aby uniknąć możliwości
przepełnienia bufora. Podobnie z innymi funkcjami z stdio.h i string.h,
które posiadają taki odpowiednik.
Jednak z tego co widzę, to w przypadku SDK do ESP8266 nie jest to takie
proste. Wśród bibliotek udostępnionych przez producenta znajdują się
osobne funkcje do manipulowana łańcuchami tekstowymi, z prefiksem "os_".
Zamiast sprintf() należy więc używać os_sprintf. Problem w tym, że w
zestawie nie ma funkcji sprawdzających wielkość bufora.
Teoretycznie można w projekcie wykorzystać standardowe biblioteki
"stdio.h" albo "string.h", jednak z tego co wyczytałem nie jest to
zalecane i wynika to ze specyfiki sprzętu (coś z wyrównywaniem pamięci).
Kod się skompiluje i może działać, ale wcale nie musi i nie ma
gwarancji, że w pewnym momencie się z tego powodu nie wysypie.
Stąd mam kilka pytań do osób trochę lepiej obeznanych z tą platformą:
1) Czy Arduino Core dla ESP8266 też jest dotknięte tą przypadłością?
Jest ono zaledwie nakładką na oficjalne SDK, czy też ktoś przeportował
standardowe biblioteki uwzględniając tę kwestię i można bezpiecznie
używać snprintf()?
Niby nie przepadam szczególnie za Arduino, ale to byłoby jakimś
argumentem...
2) Czy istnieje jakiś prosty sposób na uniknięcie tego problemu, przy
jednoczesnym korzystaniu z os_sprintf()? Czy też jedynym wyjściem jest
wcześniejsze sprawdzanie długości wszystkich elementów składowych,
wpisywanych?
Następne wpisy z tego wątku
- 24.07.17 09:07 slawek
- 24.07.17 11:49 Marek
- 24.07.17 14:08 Atlantis
- 24.07.17 14:58 J.F.
- 24.07.17 19:24 Jakub Rakus
- 24.07.17 20:13 wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU
- 25.07.17 07:38 slawek
- 25.07.17 12:59 Atlantis
- 25.07.17 13:03 s...@g...com
- 25.07.17 17:26 wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU
Najnowsze wątki z tej grupy
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
Najnowsze wątki
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Gdańsk => Software .Net Developer <=
- 2024-11-08 Akumulator Hyundai
- 2024-11-08 Warszawa => Manager/Specialist e-commerce (B2C) <=
- 2024-11-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-08 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-08 znaj podstawe
- 2024-11-08 Chrzanów => Specjalista ds. public relations <=