openSUSE komunita vybírá nová loga. Jedním z cílů je odlišit se od SUSE. Aktuálně probíhá hlasování o logu openSUSE a čtyř distribucí Tumbleweed, Leap, Slowroll a Kalpa.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2023-12-05. Přehled novinek v příspěvku na blogu a poznámkách k vydání. Nově jej lze používat také s tmavým tématem.
Dnes je to 10 let, co byla vytvořena decentralizovaná kryptoměna Dogecoin. Autoři Billy Markus a Jackson Palmer ji původně zamýšleli jako vtip. Znakem kryptoměny je pes Shiba-Inu známý z internetových memů.
Google Chrome 120 byl prohlášen za stabilní. Nejnovější stabilní verze 120.0.6099.62 přináší řadu oprav a vylepšení (YouTube). Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).
Byla vydána nová verze 2023.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení. Vypíchnout lze podporu Cloud ARM64, Vagrant Hyper-V a Raspberry Pi 5.
Společnosti IBM, Meta a dalších vice než 50 zakládajících členů (bez Microsoftu a OpenAI) vytvořili mezinárodní alianci AI Alliance pro spolupráci na vývoji a rozvoji otevřené, bezpečné a odpovědné umělé inteligence.
Služba pro hlídání uniklých hesel Have I Been Pwned oslavila 10. výročí. Troy Hunt ji spustil 4. prosince 2013 (Twitter).
Programovací jazyk HTML.
Podpora TORu v Debianu 11 Bullseye a 10 Buster byla ukončena. Doporučuje se přechod na Debian 12 Bookworm.
Příkaz "opakuj donekonečna" je nově v rozporu s podmínkami používání ChatGPT. Příkaz vedl k prozrazení trénovacích dat [/.].
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: