Port počítačové hry Pitfall! z roku 1982 napsané pro Atari 2600 si lze zahrát ve webovém prohlížeči. Zdrojové kódy jsou k dispozici na GitHubu.
Multiplatformní multimediální knihovna SDL (Simple DirectMedia Layer) byla oficiálně vydána v nové major verzi 3 (3.2.0). Změny jsou popsány v README pro migraci aplikací z SDL 2 na SDL 3.
Wine bylo po roce vývoje od vydání verze 9.0 vydáno v nové stabilní verzi 10.0. Přehled novinek na GitLabu. Vypíchnuta je nová architektura ARM64EC a podpora High DPI škálování.
Edvard Rejthar na blogu zaměstnanců CZ.NIC představil nástroj deduplidog pro odstranění duplicitních souborů.
Společnost DeepSeek představila (𝕏) AI model DeepSeek-R1 (Hugging Face) srovnatelný s OpenAI o1 a uvolnila jej pod open source licencí MIT, tj. zdarma i pro komerční použití.
GKrellM (GNU Krell Monitors, Wikipedie), tj. grafická aplikace pro sledování systémů a různých událostí, byla po pěti a půl letech vydána v nové verzi 2.4.0. Přehled novinek na Gitea.
Americká první dáma Melania Trumpová vydala v předvečer manželovy inaugurace vlastní kryptoměnu. Jmenuje se $Melania. Donald Trump vydal vlastní kryptoměnu $Trump den před manželkou.
GNU Project Debugger aneb GDB byl vydán ve verzi 16.1. Podrobný přehled novinek v souboru NEWS.
Po 9 týdnech vývoje od vydání Linuxu 6.12 oznámil Linus Torvalds vydání Linuxu 6.13. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies. Odstraněn byl souborový systém ReiserFS.
19. ledna 2038 přeteče hodnota time_t na 32bitových systémech, na vyřešení problému roku 2038 (Y2K38) tedy zbývá 13 let. Např. Debian v uplynulém roce přešel na 64bitový čas. Bernhard Wiedemann z openSUSE sdílí chyby v sestavení rozšířeného softwaru.
off64_t cislo = 1024*1024*1024*6; char buffer[500]; sprintf( buffer, "%llu", cislo );Ukáže to 2147483648, což není správně.
test.c:10: warning: integer overflow in expression test.c:10: warning: overflow in implicit constant conversionMusíte alespoň za jedno číslo přidat ULL.
$ ./test 6442450944
sprintf(buffer, "%.0lf", (double) cislo);
off_t
je z podstaty věci také znaménkový.
off64_t
samozřejmě také.
off64_t cislo = 1024*1024*1024*6; char buffer[500]; sprintf( buffer, "%lld", cislo );=-2147483648 = Špatně
off64_t cislo = 1024LL*1024LL*1024LL*6LL; char buffer[500]; sprintf( buffer, "%lld", cislo );=-2147483648 = Špatně
off64_t cislo = 1024*1024*1024*6; char buffer[500]; sprintf( buffer, "%.0lf", (double)cislo );=-2147483648 = Špatně
off64_t cislo = 1024LL*1024LL*1024LL*6LL; char buffer[500]; sprintf( buffer, "%.0lf", (double)cislo );=6442450944 = OK
PRId64
', jak jsem vám poradil dříve?
sprintf( buffer, PRId64, cislo );
, tak mi to ukázalo chybu, že proměnná není definována. Pak jsem se kouknul do toho hlavičkového souboru a zjistil, že musím před hlavičkový soubor připsat #define __STDC_FORMAT_MACROS
. Poté se ale do bufferu dal řetězec "I64d". Pak jsem vyzkoušel sprintf( buffer, "%I64d", cislo);
a ono to funguje . Díky moc za nakopnutí správným směrem.
/* 7.8.1 Macros for format specifiers * * MS runtime does not yet understand C9x standard "ll" * length specifier. It appears to treat "ll" as "l". * The non-standard I64 length specifier causes warning in GCC, * but understood by MS runtime functions. */A pak mi nemá fungovat %lld a %llu.
#include <inttypes.h> ... printf(PRId64, cislo);
Tiskni Sdílej: