Boudhayan "bbhtt" Bhattcharya v článku Uzavření kapitoly o OpenH264 vysvětluje, proč bylo OpenH264 odstraněno z Freedesktop SDK.
Představeny byly nové verze AI modelů: DeepSeek V3-0324, Google Gemini 2.5 a OpenAI 4o Image Generation.
XZ Utils (Wikipedie) byly vydány ve verzi 5.8.0. Jedná se o první větší vydání od backdooru v XZ v loňském roce.
Byla vydána nová verze 0.40.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 2.20 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl vydán ve verzi 1.3.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Vypíchnut je interaktivní HTML BOM (Bill of Materials) a počáteční podpora Rustu. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Minulý měsíc Hector "marcan" Martin skončil jako upstream vývojář linuxového jádra i jako vedoucí projektu Asahi Linux. Vývoj Asahi Linuxu, tj. Linuxu pro Apple Silicon, ale pokračuje dál. Byl publikován březnový přehled dění a novinek z vývoje. Vývojáře lze podpořit na Open Collective.
Ruská firma Operation Zero nabízí až $4 miliony za funkčí exploit komunikační platformy Telegram. Nabídku učinila na platformě X. Firma je známá prodejem exploitů ruské vládě a soukromým společnostem. Další informace na securityweek.com.
Po 9 týdnech vývoje od vydání Linuxu 6.13 oznámil Linus Torvalds vydání Linuxu 6.14. Proč až v pondělí? V neděli prostě zapomněl :-). Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies.
Konference LinuxDays 2025 proběhne o víkendu 4. a 5. října v Praze v areálu ČVUT v Dejvicích na FIT.
QFileSystemWatcher
. Když se v něm něco objeví tak chci načíst všechny řádky a hned jej zase vymazat.
Při prvním naplnění souboru, QFileSystemWatcher
změnu souboru odchytí a spustí metodu checkFile()
, která spustí metodu loadFile(STACK_FILE_PATH)
. A tady nastává chyba. Soubor se neotevře jen pro čtení a hned se vymaže. V logu se mi objeví "Proces nemá přístup k souboru, neboť jej právě využívá jiný proces.". Při dalším naplnění souboru už vše funguje jak má. Už opravdu netuším co dělám špatně. Mohl by mě někdo nakopnout správným směrem? děkuji
QFileSystemWatcher *fileWatcher; fileWatcher = new QFileSystemWatcher(this); fileWatcher->addPath(STACK_FILE_PATH); connect(fileWatcher, SIGNAL(fileChanged(QString)), this, SLOT(checkFile())); void Controller::checkFile() { if (connectionState) fileSystem->loadFile(STACK_FILE_PATH); } void FileSystem::loadFile(const QString &fileName) { QFile file(fileName); QStringList pathsList; if (file.exists() && (file.size() > 0)) { if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { emit newLog(tr("Čtení")); emit newLog(file.errorString()); } else { QTextStream out(&file); while (!out.atEnd()) { QString line = out.readLine(); pathsList << line; } emit newListForCheck(pathsList); file.close(); } if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { emit newLog(tr("Výmaz")); emit newLog(file.errorString()); } else { QTextStream in(&file); in << ""; file.close(); } } }
S QFileSystemWatcher
můžeš narazit na spoustu problémů lišících se platformu od platformy. Mně se osvědčilo vždy na začátku slotu napojeném na fileChanged
/directoryChanged
cestu z "wočru" odebrat, provést co je třeba a na konci slotu cestu znovu přidat. Stávalo se mi v některých případech, že signál o změně přišel jen jednou. Možná to vyřeší tvůj problém s omezeným přístupem k souboru.
Ještě pár tipů:
while (!out.atEnd()) { QString line = out.readLine(); pathsList << line; }bych nahradil za:
while (file.canReadLine()) { QString line = out.readLine(); pathsList << line; }a smazat obsah souboru jde lépe:
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { emit newLog(tr("Výmaz")); emit newLog(file.errorString()); } else { file.close(); }
while (!out.atEnd()) { QString line = out.readLine(); pathsList << line; }za
while (file.canReadLine()) { QString line = out.readLine(); pathsList << line; }nefunguje, ale to mě zas tak netrápí jak to sledování souboru
Tiskni
Sdílej: