Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.
Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.
Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.
Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.
Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.
Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Byla vydána verze 5.30 dnes již open source operačního systému RISC OS (Wikipedie).
#include <iostream> #include <fstream> using namespace std; int main() { // otevreni pro cteni i zapis fstream *dbFile = new fstream("file.txt", ios::in | ios::out | ios::binary); if (!dbFile->is_open()) { // soubor nelze otevrit cout << "Creating file" << endl; dbFile->open("file.txt", ios::out | ios::binary); // vytvoreni souboru if (!dbFile->is_open()) { cout << "Cannot create file" << endl; return 0; } dbFile->close(); // otevreni pro cteni i zapis dbFile->open("file.txt", ios::in | ios::out | ios::binary); if (!dbFile->is_open()) { cout << "Cannot open file after create" << endl; return 0; } if (!dbFile->write("AABB", 4)) cout << "Cannot write to file" << endl; dbFile->close(); } else cout << "Opening file" << endl; delete dbFile; return 0; }
#include <fstream> using namespace std; int main() { // jako fopen(..., "r+") => O_RDRW fstream *dbFile = new fstream("file.txt", ios::in | ios::out); if (!*dbFile) { dbFile->clear(); // jako fopen(..., "w+") => O_RDRW | O_TRUNC | O_CREAT dbFile->open("file.txt", ios::in | ios::out | ios::trunc); } if (!*dbFile) { perror("file.txt"); return 1; } if (!dbFile->write("AAXB", 4)) { perror("writing to file.txt"); return 1; } dbFile->close(); delete dbFile; return 0; }
delete dbFile;
i při chybě (nebo mít dbFile na zásobníku...). Ale podstatné je to volání dbFile->clear() a to, že dbFile->open() stačí volat dvakrát.
twofish uz te zrejme uspokojil:). jen bych dodal pro inspiraci jine reseni:
#include <iostream> #include <fstream> using namespace std; namespace { const string JMENO = "file.txt"; } int main() { fstream test; test.exceptions ( ifstream::eofbit | ifstream::failbit | ifstream::badbit ); try { test.open ( JMENO.c_str(), ios::in | ios::out | ios::binary | ios::trunc); } catch (ifstream::failure &e) { cerr << e.what() << ":"<< endl; perror ("Vyjimka otevreni/cteni ze souboru."); exit(1); } return 0; }
Tiskni Sdílej: