Knihovna libpng, tj. oficiální referenční knihovna grafického formátu PNG (Portable Network Graphics), byla vydána ve verzi 1.6.51. Opraveny jsou 4 bezpečnostní chyby obsaženy ve verzích 1.6.0 (vydána 14. února 2013) až 1.6.50. Nejvážnější z chyb CVE-2025-65018 může vést ke spuštění libovolného kódu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 159 (pdf).
Hru Warhammer: Vermintide 2 (ProtonDB) lze na Steamu získat zdarma napořád, když aktivaci provedete do pondělí 24. listopadu.
Virtualizační software Xen (Wikipedie) byl vydán v nové verzi 4.21. Podrobnosti v poznámkách k vydání a přehledu nových vlastností.
Evropská komise schválila český plán na poskytnutí státní pomoci v objemu 450 milionů eur (téměř 11 miliard Kč) na rozšíření výroby amerického producenta polovodičů onsemi v Rožnově pod Radhoštěm. Komise o tom informovala v dnešní tiskové zprávě. Společnost onsemi by podle ní do nového závodu v Rožnově pod Radhoštěm měla investovat 1,64 miliardy eur (téměř 40 miliard Kč).
Microsoft v příspěvku na svém blogu věnovaném open source oznámil, že textové adventury Zork I, Zork II a Zork III (Wikipedie) jsou oficiálně open source pod licencí MIT.
První prosincový týden proběhne SUSE Hack Week 25. Zaměstnanci SUSE mohou věnovat svůj pracovní čas libovolným open source projektům, například přidání AI agenta do Bugzilly, implementaci SSH v programovacím jazyce Zig nebo portaci klasických her na Linux. Připojit se může kdokoli.
Google oznámil, že Quick Share na Androidu funguje s AirDropem na iOS. Zatím na telefonech Pixel 10. Uživatelé tak mohou snadno přenášet soubory z telefonů s Androidem na iPhony a obráceně.
Byla vydána nová verze 8.5 (8.5.0) skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Přináší řadu novinek a vylepšení (URI Extension, Pipe Operator, Clone With, …). Vydána byla také příručka pro přechod z předchozích verzí.
Evropská komise zahájila tři vyšetřování týkající se cloudových platforem Amazon Web Services (AWS) a Microsoft Azure. Evropská exekutiva, která plní také funkci unijního antimonopolního orgánu, chce mimo jiné určit, zda jsou americké společnosti Microsoft a Amazon v cloudových službách takzvanými gatekeepery, tedy hráči, kteří významně ovlivňují provoz internetu a musí dle nařízení o digitálních trzích (DMA) na společném trhu
… více »Budu predpokladat, ze presne vite, proc se snazite libbz2 nahravat manualne. Doporucil bych vam, abyste udelal malou knihovnicku, do ktere zaradite tridu BZip2. To vam umozni inkludovat bzlib.h a normalne pouzivat bz2 funkce bez tech prostocviku, ktere tam predvadite a na ktere byste v budoucnu urcite doplatil. Manualne pak natahnete tuto malou knihovnu, nalinkujete si jedinou funkci (nazveme ji treba Compressor* get_compressor()), ktera vrati ukazatel na vytvoreny Bzip2.
Spatne jste si precetl dokumentaci. Napr.:
Repeatedly call BZ2_bzCompress with action = BZ_FINISH, copying out the compressed output, until BZ_STREAM_END is returned.
Vy volate BZ_FINISH jen jednou. Nevim proc rucne nastavujete total_out_*, atd.
Debugoval jste to vubec? Nastartujte gdb a hezky radek po radku sledujte, co to dela.
Děkuji za vaši reakci.
Program se snažím psát, aby byl přenositelný i na Windows, proto to načítání. Ve Windows nemám žádné zdrojové soubory bzip2 knihovny a přidávat je ke zdrojovému kódu programu je podle mě zbytečnost. A hlavně si takto můžu ošetřit dostupnost knihovny. V případě její nepřítomnosti může program fungovat dál, pouze bez funkce komprese bzip2.
Děkuji za upozornění o špatném přečtení dokumentace. Kouknu na to. Snad je to příčinou nefunkčnosti komprese binárních souborů.
Ne nedebugoval, ale jdu na to 
if(!cancel)
{
do
{
bzstrm.next_out = destbuffer;
bzstrm.avail_out = BZ_BUFFER_SIZE;
bzstrm.total_out_lo32 = 0;
bzstrm.total_out_hi32 = 0;
}while( (bzip2_Compress( &bzstrm, BZ_FINISH ) != BZ_STREAM_END) && (outFile.write( destbuffer, bzstrm.total_out_lo32 ) == bzstrm.total_out_lo32 ) );
++filesCompressed;
}
Programem zkusím zkomprimovat vlastní program (
). Dostanu však 12kB archiv, kdežto programem bzip2 se stejnou úrovní komprese 13. Těch 12kB jsou ale shodné - chybí tam pořád nějaký konec.bzstrm.total_out_*32, tak ten program vytvoří archiv kolem 30kB a je vadný.
if( bzstrm.total_out_lo32 > 0 ) outFile.write( destbuffer, bzstrm.total_out_lo32 );. Díky za radu.A hlavně si takto můžu ošetřit dostupnost knihovny. V případě její nepřítomnosti může program fungovat dál, pouze bez funkce komprese bzip2.To budete moci delat i tak. Z tridy Bzip2 si udelate malou knihovnicku, ktera obali bzip2 knihovnu a nahravat budete tu malou. Pokud nebude dostupna libbzip2, nenahraje se ani ta vase. Cele to pak bude jednodussi, cistsi a mene nachylne k chybam.
Tiskni
Sdílej: