Vědci z univerzity La Sapienza v Římě vyvinuli systém, který dokáže identifikovat jednotlivce pouze na základě toho, jak narušují signály Wi-Fi. Autoři tuto novou technologii nazvali WhoFi. Na rozdíl od tradičních biometrických systémů, jako jsou skenery otisků prstů a rozpoznávání obličeje, nevyžaduje tato metoda přímý fyzický kontakt ani vizuální vstupy. WhoFi může také sledovat jednotlivce na větší ploše než kamera s pevnou polohou; stačí, je-li k dispozici Wi-Fi síť.
SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.
Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.
Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.
Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.
Řešení dotazu:
... pristupujes cez va_* macra. Tj:
#include <stdio.h>
#include <stdarg.h>
void eas_debug(int debug_level, char *str1, ...) {
va_list args;
va_start(args, str1);
while (*str1) {
switch (*str1++) {
case 'd' : {
int a = va_arg(args, int);
printf ("eas_debug%d: got int: %d\n", debug_level, a);
break;
}
}
}
va_end(args);
}
int main() {
eas_debug(1, "%d", 2);
return 0;
}
a vystup:
$ cc -Wall -o atest test.c
$
$ ./atest
eas_debug1: got int: 2
$
S obyčejným printf() tohle (předání všech parametrů najednou) neuděláte, ale právě proto existuje vprintf() a příbuzné funkce:
void debug(unsigned l, const char* fmt, ...)
{
va_list v;
if (l > debug_level) return;
va_start(v, fmt);
vfprintf(stderr, fmt, v);
va_end(v);
}
Jinak samozřejmě můžete udělat i to, co navrhoval mato, a napsat si svou vlastní funkci, která bude parsovat format string a zpracovávat podle něj jednotlivé parametry. Pokud ale potřebujete jen nadstavbu nad standardní printf(), zbytečně byste tím jen duplikoval už hotovou práci.
*printf family som nepomyslel .. takto to funguje ukazkovo.
printf, namatkovo som teraz grepol zdrojaky z FreeBSD, v sys/boot/arm/at91/libat91/printf.c je (pastujem iba pre tvoju otazku dolezite veci):
void printf(const char *fmt,...) {
va_list ap;
va_start(ap, fmt);
while ((c = *fmt++)) {
c = *fmt++;
switch (c) {
case 'c':
xputchar(va_arg(ap, int));
continue;
case 's':
for (s = va_arg(ap, char *); *s; s++)
xputchar(*s);
continue;
odkial ten printf pochadza je uplne jedno. osobne by som povedal, ze sa to ale teda nada spravit tak, ako si to mal na mysli.
mozno ma ale niekto opravi..
#define debug(...) \
do { \
fprintf(stderr, "%s:%s():%d:", \
__FILE__, __func__, __LINE__); \
fprintf(stderr, __VA_ARGS__); \
fprintf(stderr, "\n"); \
} while(0)
nebo pres funkci
void log_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
Tiskni
Sdílej: