Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za březen (YouTube).
ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.
DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.
Byla vydána nová verze 10.3 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu bezpečnostních oprav, vylepšení funkcí a oprav chyb.
Cloudflare představil open source redakční systém EmDash. Jedná se o moderní náhradu WordPressu, která řeší bezpečnost pluginů. Administrátorské rozhraní lze vyzkoušet na EmDash Playground.
Bratislava OpenCamp 2026 zverejnil program a spustil registráciu. Štvrtý ročník komunitnej konferencie o otvorených technológiách prinesie 19 prednášok na rôzne technologické témy. Konferencia sa uskutoční v sobotu 25. apríla 2026 v priestoroch FIIT STU v Bratislave.
char *buff;
getcwd(buff,100);
Vyzkoušel jsem tento kód funguje správně ale v momentě kdy se snažím do programu přidat byť i jenom jeden int tak to skončí na SIGSEV.
Vím že za použití malloc je problém vyřešen ale mě zajímá proč. Aji když si getcwd alokuje něco kolem 100*sizeof(char) tak to nemůže zaplnit celý zásobník ne? Dále v programu už používám jenom opendir() který mi snad nehází ty data na zásobník.
char *buff je jen neinicializovaný (ukazující kdokoliv ví kam), nealokuje žádnou paměť.
char *buff je jen neinicializovaný ukazatel/pointer (ukazující kdokoliv ví kam), nealokuješ žádnou paměť.
int main() {
char* buf = NULL;
buf = getcwd(buf, 100);
printf ("buf: %s\n", buf);
free(buf);
buf = NULL;
return 0;
}
buf musi byt NULL aby sa alokoval novy space. ak je not NULL, tak getcwd() to bere ako pointer na alokovany space.
src:
FreeBSD: /usr/src/lib/libc/gen/getcwd.c:
90 } else {
91 if ((pt = malloc(ptsize = PATH_MAX)) == NULL)
92 return (NULL);
93 ept = pt + ptsize;
kde pt je prvy arg. fcie.
nikdo nic nealokujeze v tomto pripade
getcwd() alokuje za neho buffer, ak je vstupny argument pre buf NULL.
As an extension to the POSIX.1-2001 standard, Linux (libc4, libc5, glibc) getcwd() allocates the buffer dynamically using malloc(3) if buf is NULL. In this case, the allocated buffer has the length size unless size is zero, when buf is allocated as big as necessary. The caller should free(3) the returned buffer.
#include <linux/limits.h>
/* ... includes ...*/
char *buf = NULL;
buf = getcwd(buf, PATH_MAX);
nebo
#include <linux/limits.h>
/* ... includes ...*/
char buf[PATH_MAX];
buf = getwd(buf, sizeof(buf));
Tiskni
Sdílej: