Rubrika: C/C++

  • Inkrementální operátor a jeho rychlost

    Inkrementální operátor a jeho rychlost

    Porovnání dvou typů inkrementálního operátoru v c++. Je z hlediska výkonu výhodnější používat prefix nebo suffix formu operátoru ?

  • MQTT klient v C++

    MQTT klient v C++

    Následující článek navazuje na článek, který představoval protokol MQTT. V tomto článku byly představeny základní principy protokolu. Především tři typy uzlů – producent, konzument a jejich komunikačního zprostředkovatele. Následujících pár řádek se věnuje malé rekapitulaci. v síti se nejdříve spustí zprostředkovatel – broker producent informace se zaregistruje ke zprostředkovateli na dané téma – topic konzument […]

  • Trasování binárních programů

    Trasování binárních programů

    Každý vývojář jednou přejde z bodu, kdy ‚loví‘ chyby ve svých algoritmech do bodu, kdy se snaží algoritmy optimalizovat. Optimalizovat buď na rychlost, případně na paměťovou náročnost. Nejtěžší a samozřejmě nejdůležitější je nalezení střední varianty mezi těmito dvěma extrémy. Dokud je algoritmus pouze jeden, případně celý program není příliš rozsáhlý, je možné tuto optimalizaci dělat […]

  • Unit testy v C++

    Unit testy v C++

    Každý program, který programátor vyvíjí je nutné správně testovat. Již nějakou dobou se objevují termíny jako test-driven development. Jedná se o přístup, kdy programátor kromě zdrojového kódu aplikace vyvíjí a udržuje také zdrojový kód automatických testů. Tyto testy se skládají z jednotlivých funkcí, kdy každá funkce testuje jednu jednotku cílového kódu. Z tohoto důvodu se […]

  • Křížová kompilace OpenLDAP

    Křížová kompilace OpenLDAP

    V jednom z předchozích příspěvků jsem představil způsob, jak ze zkompilovat zdrojové kódy pro openLDAP. V tomto příspěvku předvedu, jak lze tyto zdrojové kódy zkompilovat pro jinou architekturu, než tu, na které kompilujeme. Nejedná se o nic převratného, ale spíše o standardní přístup, jak zkompilovat nějakou větší aplikaci pro slabší hardware, například Cubieboard. Pro křížovou […]

  • Kompilace OpenLDAP

    Kompilace OpenLDAP

    OpenLDAP implementuje vše potřebné pro úspěšné provozování LDAP spojení. V článku je představen způsob, kde získat zdrojové kódy a jak je přeložit. Výsledkem je pak fungující ukázková aplikace, která umí zjistit, do jakých skupin patří zadaný uživatel. Zdrojové kódy jsou dostupné ze stránek projektu jako .tgz archiv. Dalším potřebným balíkem, který není standardní částí systému […]

  • Vývoj GTK+ aplikací

    Vývoj GTK+ aplikací

    Pro základní vývoj aplikcí pomocí GTK je nutné mít nainstalovanou knihovnu libgtk-3-dev. Oproti té se pak bude vyvíjená aplikace překládat a linkovat. Překlad i s linkováním lze provést pomocí následujícího příkazu. $ gcc foo.c -o foo `pkg-config –cflags –libs gtk+-3.0` Platí zde jedno velké upozornění – sekce pkg-config musí vždy být až na konci příkazu, […]

  • Nastavení toolchainu pro ARM

    Nastavení toolchainu pro ARM

    Procesory pohánějící většinu dnes používaných pracovních stanic nebo notebooků jsou postaveny na architektuře x86 nebo x64. Pokud chceme spustit nějaký kompilovaný program na jiné architektuře, je nutné k tomu použít příslušný toolchain. Nejdříve uvedeme pár důležitých pojmů. Host – je hostitelský počítač (často x86/x64 architektury) Target – je cílový počítač (v tomto případě ARM) Toolchain […]

  • Připojení k MySQL serveru pomocí jazyka C

    Připojení k MySQL serveru pomocí jazyka C

    Databáze už je možné dnes najít prakticky kdekoliv. Ukládají se do nich uživatelská data, případně konfigurační data a podobně. Ukládání do databáze ušetří při programování spoustu času díky tomu, že není potřeba složitě zajišťovat spolehlivost uložení dat. V tomto článku se nebudu zabývat instalací nebo konfigurací MySQL serveru, ale pouze aplikačním programem, který se k […]

  • Spouštění procesů v C

    Spouštění procesů v C

    Motivací k programování víceprocesových aplikací může být několik. V dřívějších dobách, kdy počítače ještě neměly potřebný výkon, bylo možné spustit vždy pouze jeden proces. Uživatel proto musel vždy čekat, než se mu například stáhne obsah diskety na disk, aniž by mohl dělat cokoliv jiného, než pozorovat, jak se kopíruje. Tato doba už je naštěstí dávno […]