Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.
Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.
V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.
Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
/*Pri prekladu zakomentovat podle potreby*/
#define OS_LINUX_OPT
#define OS_LINUX_USR_LOCAL
#define OS_LINUX_USR
#define OS_WINDOWS
char* grabFile(char* filespec) {
char p[256];
#ifdef OS_LINUX_USR
strcat(p,"/usr/local/myprogram/");
strcat(p,filespec);
#endif
#ifdef OS_WINDOWS
strcat(p,getProgramDirectory());
strcat(p,"\\");
strcat(p.filespec);
#endif
return p;
}
(Priznavam,ze tento kod neni bezpecny, snadno lze zpusobit preteceni)
... a tak nejak. Prikladem podobneho ucinneho vyuziti preprocesoru
jsou zdrojove kody ke hre Wolfenstein 3D.
$HOME, což může představovat vše od /home/vyskocil/usr/program v práci, až po /homes/eva/xv/xvysko02/usr/program ve škole
.
getProgramDirectory(), kterou si ovsem musite napsat.A pak je opravdu jedno, kde ten program je.
Tudiz si zavedeme: OS_LINUX_ANYWHERE
char* grabFile(char* filespec) {
char p[256];
#ifdef OS_LINUX_ANYWHERE
strcat(p,getProgramDirectory());
strcat(p,"/");
strcat(p,filespec);
#endif
return p;
....
}
getProgramDirectory() proste vezme nulty parametr prikazove radky
a odsekne z nej vse za poslednim lomitkem a je to. Tak se program
najde, at uz je kdekoliv.
namespace fs = boost::filesystem;
// inicializace cesty
fs::path tmpPath( FileOption, fs::native );
// pokud cesta neni kompletni
// (neobsahuje C:\ nebo "/root/..")
// pripoj pracovni adresar (workingDir)
File = tmpPath.is_complete()
? tmpPath
: workingDir/tmpPath; //spojeni cest
if( !fs::exists( File ) )
{
std::cerr << "\nerror: File "
<< File.string()
<< "\ndoes not exist.\n";
return 1;
}
else if( fs::is_directory( File ) )
{
std::cerr << "\nerror: Argument for the file "
<< File.string()
<< "\nis a directory.\n";
return 1;
}
samozrejme v cestach k souborum bude potreba zmenit lomitka za zpetna lomitkaTo je pěkná blbost.
Tiskni
Sdílej: