Společnost IBM představila novou generaci svých serverů: IBM Power11.
Multiplatformní digitální pracovní stanice pro práci s audiem Ardour byla postavena na GTK2. Vývojáři neplánovali její portaci na GTK3 nebo GTK4. Naopak, v lednu loňského roku si vytvořili vlastní fork GTK2 s názvem YTK. Ten v únoru letošního roku přestal být volitelným a nově byla zcela odstraněna podpora GTK2.
Byla vydána nová verze 6.4 linuxové distribuce Parrot OS (Wikipedie). Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Společnost initMAX pořádá sérii bezplatných webinářů věnovaných novému Zabbixu 7.4. Podrobnosti a registrace na webu initMAX.
… více »Byla vydána verze 7.0 open source platformy pro správu vlastního cloudu OpenNebula (Wikipedie). Kódový název nové verze je Phoenix. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.
E-mailový klient Thunderbird byl vydán ve verzi 140.0 ESR „Eclipse“. Jde o vydání s dlouhodobou podporou, shrnující novinky v upozorněních, vzhledu, správě složek a správě účtů. Pozor, nezaměňovat s průběžným vydáním 140.0, které bylo dostupné o týden dříve.
Organizace Video Games Europe reprezentující vydavatele počítačových her publikovala prohlášení k občanské iniciativě Stop Destroying Videogames.
Společnost Raspberry Pi nově nabzí Raspberry Pi Camera Module 3 Sensor Assembly, tj. samostatné senzorové moduly z Raspberry Pi Camera Module 3.
Cathode Ray Dude v novém videu ukazuje autorádio Empeg Car (později Rio Car) z let 1999–2001. Šlo o jeden z prvních přehrávačů MP3 do auta. Běží na něm Linux. Vyrobeno bylo jen asi pět tisíc kusů, ale zůstala kolem nich živá komunita, viz např. web riocar.org.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.7.
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: