Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂
Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.
Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.
Access not within mapped region at address 0x0 ==26680== at 0x3BD606CD90: fwrite (in /usr/lib64/libc-2.17.so)Je mozne, ze se nekdy nejak nekorektne otevre soubor pro psani? Premyslim, v cem to muze byt. Lze kod nejak osetrit tak, aby to bylo vzdy korektni?
void send_file(char *source, char *destination) { FILE * filer, * filew; int numr, numw; char buffer[1024]; if ((filer = fopen(source, "rb")) == NULL) { perror("open read file error.\n"); //exit(1); } if ((filew = fopen(destination, "wb")) == NULL) { perror("open write file error.\n"); //exit(1); } while (feof(filer) == 0) { if ((numr = fread(buffer, 1, 100, filer)) != 100) { if (ferror(filer) != 0) { perror("read file error.\n"); //exit(1); } else if (feof(filer) != 0); } if ((numw = fwrite(buffer, 1, numr, filew)) != numr) { perror("write file error.\n"); //exit(1); } } fclose(filer); fclose(filew); }
Řešení dotazu:
A nejsou právě problémem ty zakomentované exit-y?, tedy dle hlášky zrovna ten ve fopen pro filew.
U zapisovaného souboru je dobré kontroloval návratový kód fclose, moc se to sice nedělá, ale…
#include <stdlib.h> #include <unistd.h> #include <stdio.h> void send_file(const char *source, const char *destination) { FILE * filer, * filew; int numr; const int SIZE_OF_BUFFER=1024; char buffer[SIZE_OF_BUFFER]; if ((filer = fopen(source, "rb")) == NULL) { perror("open read file error.\n"); exit(1); } if ((filew = fopen(destination, "wb")) == NULL) { perror("open write file error.\n"); fclose(filer); exit(1); } while (feof(filer) == 0) { if ((numr = fread(buffer, 1, SIZE_OF_BUFFER, filer)) != SIZE_OF_BUFFER) { if (ferror(filer) != 0) { perror("read file error.\n"); fclose(filer); fclose(filew); exit(1); } } if (fwrite(buffer, 1, numr, filew) != numr) { perror("write file error.\n"); fclose(filer); fclose(filew); exit(1); } } if(fclose(filer) != 0) printf("read file - close error.\n");//has read-file been deleted ... ??? if(fclose(filew) != 0) printf("write file - close error.\n");//flush C buffer fails //fsync ???? } int main( int argc, const char* argv[] ){ if (argc == 3 ) { send_file(argv[1], argv[2]); } else { printf("Main error, two params needed (from, to).\n"); return 1; } return 0; }
Tiskni
Sdílej: