Jak nahrávat zvuk z webového prohlížeče na Linuxu s PipeWire pomocí Nahrávání zvuku (Sound Recorder) a Helvum případně qpwgraph, článek na webu Libre Arts.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.9.
České bezpečnostní instituce, jmenovitě Vojenské zpravodajství (VZ) a Bezpečnostní informační služba (BIS), ve spolupráci s americkou Agenturou pro kybernetickou a infrastrukturní bezpečnost (CISA), Federálním úřadem pro vyšetřování (FBI), Národní bezpečností agenturou (NSA) a dalšími mezinárodními partnery ze Spojeného království, Austrálie, Kanady, Německa, Nizozemska, Estonska, Ukrajiny a Lotyšska vydaly upozornění (
… více »Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.93 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.93 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Společnost Laravel stojící za stejnojmenným open source PHP frameworkem získala investici 57 milionů dolarů od společnosti Accel. Především na Laravel Cloud.
Byla vydána verze 1.81.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Řešena je také zranitelnost CVE-2024-43402. Vyzkoušet Rust lze například na stránce Rust by Example.
Vládní CERT vydal (𝕏) novou verzi nástroje maldump. Ten slouží k extrakci souborů z karantén různých antivirových programů. A to jak z živého systému, tak z obrazu disku.
Meeting ESP komunity - podzimní edice 2024 proběhne v pátek 18. října v Brně. V přípravě jsou přednášky od vývojářů z Espressifu, lokálních firem i zapálených nadšenců do ESP a také praktický workshop a ukázky nových čipů.
Systém pro správu hlášení chyb Bugzilla byl podle plánu vydán v nových verzích 5.2, 4.4.14, 5.0.4.1, 5.3.3 a 5.9.1, kde 5.2 představuje novou stabilní řadu, 4.4.14 by měla být poslední ve staré řadě 4.4, jíž končí podpora na přelomu roku, 5.0.4.1 je udržovací opravné vydání staré řady 5.0, dosavadní stabilní řada 5.1 byla přejmenována na 5.3 (nyní 5.3.3) a konečně vývojová verze 5.9.1 směřuje k budoucímu velkému vydání Bugzilly 6.
Může mi někdo vysvětlit, proč jsou operace provedené na souborech otevřených pomocí open()
mnohem pomalejší než operace prováděné se soubory otevřenými pomocí fopen()
? (Oboje dvoje na obyčejných souborech)
Případně pokuď existuje, tak bych uvítal nějaký "trik" jak dosáhnout stejné rychlosti.
Hmm, takže s tím očividně neumím zacházet... Proč může být druhý kód mnohonásobně pomalejší než první?
kód 1 - fopen
/* Hlavicka */ if(!fwrite(&header, sizeof(header), 1, fp)) return 0; /* Data */ if((fr = fopen(file_name, "r")) == NULL) return 0; while(c = getc(fr), !feof(fr)) putc(c, fp); if(fclose(fr) == EOF) return 0;
kód 2 - open
/* Hlavicka */ if(write(fp, &header, sizeof(header)) != sizeof(header)) return 0; /* Data */ if((fr = open(file_name, O_RDONLY)) == -1) return 0; while(read(fr, &c, 1) > 0) write(fp, &c, 1) if(close(fr) == -1) return 0;
fp je deskriptor normálního otevřeného souboru, v prvnim případě FILE *, ve druhém int.
Program ve kterém to potřebuju použít by měl bejt obdobou tar -cvvzf
. Potřeboval bych proto vytvořený archiv po znaku rovnou posílat pomocí roury komprimátoru, ale pomocí write()
a read()
je to strašně pomalý - tak, že mnohem rychlejší je nejdříve vytvořit archiv a pak ho znova načítat a komprimovat...
Co zkusit ve druhem pripade misto jednoho znaku treba 1000?:
char pole[1000]; while(read(fr,pole,1000)) write(fp,pole,1000);
Duvod je ten, ze kdyz jedes znak po znaku, tak pro kazdou operaci pouzijes jedno preruseni a to bez ohledu na to, kolik mas dat, takze procesor se musi porad starat o preruseni misto toho aby dal prikaz pameti/disku, ze ma neco udelat.
To mě taky napadlo, ale pro LZW kompresy potřebuju ty znaky pak dostávat stejně po znaku (šlo by si ale udělat nějakej buffer). Nicméně proč je to pomocí fputs()
"normálně" rychlý a pomocí write()
tak pomalý?
Tiskni Sdílej: