KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.
Byl vydán Mozilla Firefox 158.0. Stejně jako Chrome 155 s podporou JPEG XL (test). Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 158 bude brzy k dispozici také na Flathubu a Snapcraftu.
Svobodný kancelářský balík ONLYOFFICE (Wikipedie) byl vydán ve verzi 10.0. Jak online Docs, tak i offline Desktop Editors. Přehled novinek také na YouTube.
Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.
Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.
… více »Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).
V červnu byla představena aplikace Myna pro převod řeči na text v prostředí desktopu Ubuntu. Včera byla Myna zpřístupněna širší komunitě Ubuntu formou technologické ukázky dostupné v Ubuntu 24.04 LTS, Ubuntu 26.04 LTS a Ubuntu 26.10 s GNOME na Waylandu.
Ubuntu 27.04 bude Tenacious T-Rex.
Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.
Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a
… více »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: