Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).
Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.
Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.
Meta převezme sociální síť pro umělou inteligenci (AI) Moltbook. Tvůrci Moltbooku – Matt Schlicht a Ben Parr – se díky dohodě stanou součástí Meta Superintelligence Labs (MSL). Meta MSL založila s cílem sjednotit své aktivity na poli AI a vyvinout takovou umělou inteligenci, která překoná lidské schopnosti v mnoha oblastech. Fungovat by měla ne jako centralizovaný nástroj, ale jako osobní asistent pro každého uživatele.
Byla vydána betaverze Fedora Linuxu 44 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 14. dubna.
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: