Byla vydána nová verze 10.7 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Přibyly balíčky HomeBox a Scrypted.
OpenRGB (GitLab) dospěl do verze 1.0 (YouTube). OpenRGB (dříve OpenAuraSDK) je svobodný multiplatformní software umožňující nastavení podsvícení celé řady různých „herních“ komponent a periferií.
Dnes startuje prodej headsetu Steam Frame. Počínaje dneškem se tedy můžete zapsat na seznam pro jeden z následujících modelů: Steam Frame 256 GB za 1 049 EUR a Steam Frame 1 TB za 1 279 EUR.
Vládní CERT upozorňuje na kritickou zranitelnost v GitLab Community Edition (CE) a Enterprise Edition (EE). Zranitelnost CVE-2026-85706 typu path traversal v Repository Commits API dosahuje skóre CVSS 10.0. Kvůli nedostatečnému omezení cest a chybějícímu vynucení autentizace může za určitých podmínek neautentizovaný útočník číst libovolné soubory ze serveru GitLab, a získat tak přístup k citlivým datům a konfiguraci instance.
Linux může běžet nativně na ESP32-S3 – bez emulace a rovnou s 9,7″ e-paperem.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 7.0.0. Pro sandboxing se na Linuxu nově používá Landlock místo Bubblewrap. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Správce fotografií Shotwell byl vydán ve verzi 33.0 (GitLab). Hlavní novinkou v tomto vydání po dvou letech je přechod na GTK4.
Na YouTube byly publikovány videozáznamy přednášek a na Flickru fotografie z konference EuroPython 2026.
Byl vydán Debian 13.7, tj. sedmá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Jiří Eischmann se v příspěvku Fiasko jménem W Social na svém blogu věnuje evropské sociální síti W: "W Social je příkladem toho, že se problémy sociální sítí nedají řešit od exekutivního stolu. Když na začátku tohoto roku v Davosu oznámili vznik nové sociální sítě W Social, politici se mohli přetrhnout ve chvalozpěvech. Konečně evropská sociální síť a ještě s ověřením identity. … Jak se ukázalo, když v Davosu W Social oznamovali, neměli kromě
… více »#include <string.h> char *src = "abcdef"; char *var = NULL; var = strndup(src + 1, 3);Stejně jako to, co jsi napsal v PHP, ani tohle nefunguje s UTF-8.
#include < string > std::string s = "abcdef" std::string novy = s.substr(1,3)
std::string s("abcdef");
std::cout << s.substr(1, 3) << "\n";
std::string ss = s.substr(1, 3);
Projdete si dokumentaci k std::basic_string, tam toho najdete vic. Pokud se nejedna ciste o studijni zvedavost, tak bych vam doporucil pouzit standardni prostredky a o rychlost/pametovou narocnost se zacnete starat az ve chvili, kdy vam zacne byt na prekazku. Napsat pouzitelnou retezcovou tridu tak, aby umoznovala sdileni i substringu rozhodne neni zadna prdel. Mimochodem, to phpko vam kopii vytvori.
Jak jiz Pan Kufner zminil, je treba zavolat free(). Pokud ho nezavolate, pamet zustane alokovana po celou dobu zivota programu. A v tom vasem prikladu nevratne, protoze jste ukazatel vraceny strndup() de facto zahodil.
char* s = strndup(src + 1, 3);
printf("Test %s\n", s);
free(s);
vim ~/.emacs
char *str = strdup("abcdef"); // nějak se do str dostal řetězec
char *var;
var = str + 1; // uříznem začátek
var[3] = 0; // uříznem konec
Dej si pozor na to, co pak budeš uvolňovat. free(var) bude dělat blbosti.
#ifdef OSKLIVY_WINDOWS
char *strndup(const char *src, int count) {
char *r;
r = strdup(src);
r[count] = 0;
return r;
}
#endif
To už spíš takhle:
char* strndup(const char* src, size_t count)
{
char* np = (char*) malloc(count+1);
if (np) {
strncpy(np, src, count);
np[count] = '\0';
}
return np;
}
A ještě poznámku: místo '#ifdef OSKLIVY_WINDOWS' by bylo na místě spíš něco jako '#ifndef _GNU_SOURCE', protože strndup() není v žádné POSIX specifikaci, je to GNU extension.
V každém případě bych ale v C++ upřednostnil použití třídy std::string
Tiskni
Sdílej: