Operátor O2 dává všem svým zákazníkům s mobilními službami poukaz v hodnotě 300 Kč na nákup telefonu nebo příslušenství jako omluvu za pondělní zhoršenou dostupnost služeb.
Společnost NVIDIA vydala verzi 13.0 toolkitu CUDA (Wikipedie) umožňujícího vývoj aplikací běžících na jejich grafických kartách. Přehled novinek v poznámkách k vydání.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 28. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za červenec (YouTube).
Konečně se ochladilo, možná i díky tomu přestaly na chvíli padat rakety jako přezrálé hrušky, díky čemuž se na Virtuální Bastlírně dostane i na jiná, přízemnější témata. Pokud si chcete jako každý měsíc popovídat s dalšími bastlíři, techniky, vědci a profesory u virtuálního pokecu u piva, Virtuální Bastlírna je tu pro Vás.
Ještě před ochlazením se drát na vedení V411 roztáhl o 17 metrů (přesné číslo není známé, ale drát nepřežil) a způsobil tak… více »Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
PixiEditor byl vydán ve verzi 2.0. Jedná se o multiplatformní univerzální all-in-one 2D grafický editor. Zvládne rastrovou i vektorovou grafiku, pixel art, k tomu animace a efekty pomocí uzlového grafu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GNU LGPL 3.0.
Byly představeny novinky v Raspberry Pi Connect for Organisations. Vylepšen byl protokol auditu pro lepší zabezpečení. Raspberry Pi Connect je oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče. Verze pro organizace je placená. Cena je 0,50 dolaru za zařízení za měsíc.
CISA (Cybersecurity and Infrastructure Security Agency) oznámila veřejnou dostupnost škálovatelné a distribuované platformy Thorium pro automatizovanou analýzu malwaru. Zdrojové kódy jsou k dispozici na GitHubu.
Ubuntu nově pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 3. snapshot Ubuntu 25.10 (Questing Quokka).
#define EVENT_SIZE ( sizeof (struct inotify_event) ) #define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) ) int main(int argc, char **argv) { int length, i = 0; int fd; int wd; char buffer[BUF_LEN]; fd = inotify_init(); if (fd < 0) { perror("inotify_init"); } wd = inotify_add_watch(fd, "/home/tomesh/Dropbox/C/sync", IN_ALL_EVENTS); if (length < 0) { perror("read"); } while (1) { length = read(fd, buffer, BUF_LEN); struct inotify_event *event = (struct inotify_event *) &buffer[ i ]; if (event->len) { if (event->mask & IN_CREATE) { if (event->mask & IN_ISDIR) { printf("The directory %s was created.\n", event->name); } else { printf("The file %s was created.\n", event->name); } } if (event->mask & IN_DELETE) { if (event->mask & IN_ISDIR) { printf("The directory %s was deleted.\n", event->name); } else { printf("The file %s was deleted.\n", event->name); } } if (event->mask & IN_MODIFY) { if (event->mask & IN_ISDIR) { printf("The directory %s was modified.\n", event->name); } else { printf("The file %s was modified.\n", event->name); } } if (event->mask & IN_MOVED_FROM) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was moved from.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was moved from.\n", event->name, event->cookie); } } if (event->mask & IN_MOVED_TO) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was moved to.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was moved to.\n", event->name, event->cookie); } } if (event->mask & IN_MOVE_SELF) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %ds was itself moved.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was itself moved.\n", event->name, event->cookie); } } if (event->mask & IN_DELETE_SELF) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was itself deleted.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was itself deleted.\n", event->name, event->cookie); } } if (event->mask & IN_OPEN) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was opened.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was opened.\n", event->name, event->cookie); } } if (event->mask & IN_ATTRIB) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d attr was changed.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d attr was changed.\n", event->name, event->cookie); } } if (event->mask & IN_ACCESS) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was accessed.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was accessed.\n", event->name, event->cookie); } } } } (void) inotify_rm_watch(fd, wd[0]); (void) close(fd); exit(0); }
Řešení dotazu:
i += EVENT_SIZE + event->len;
#define EVENT_SIZE ( sizeof (struct inotify_event) ) #define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) ) int main(int argc, char **argv) { int length, i; int fd; int wd; char buffer[BUF_LEN]; struct inotify_event *event; fd = inotify_init(); if (fd < 0) perror("inotify_init"); wd = inotify_add_watch(fd, "/home/tomesh/Dropbox/C/sync", IN_ALL_EVENTS); while (1) { i = 0; length = read(fd, buffer, BUF_LEN); if (length < 0) perror("read"); if (length == 0) sleep(1); while (i < length) { event = (struct inotify_event *) &buffer[i]; if (event->mask & IN_CREATE) { if (event->mask & IN_ISDIR) { printf("The directory %s was created.\n", event->name); } else { printf("The file %s was created.\n", event->name); } } if (event->mask & IN_DELETE) { if (event->mask & IN_ISDIR) { printf("The directory %s was deleted.\n", event->name); } else { printf("The file %s was deleted.\n", event->name); } } if (event->mask & IN_MODIFY) { if (event->mask & IN_ISDIR) { printf("The directory %s was modified.\n", event->name); } else { printf("The file %s was modified.\n", event->name); } } if (event->mask & IN_MOVED_FROM) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was moved from.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was moved from.\n", event->name, event->cookie); } } if (event->mask & IN_MOVED_TO) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was moved to.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was moved to.\n", event->name, event->cookie); } } if (event->mask & IN_MOVE_SELF) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %ds was itself moved.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was itself moved.\n", event->name, event->cookie); } } if (event->mask & IN_DELETE_SELF) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was itself deleted.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was itself deleted.\n", event->name, event->cookie); } } if (event->mask & IN_ATTRIB) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d attr was changed.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d attr was changed.\n", event->name, event->cookie); } } if (event->mask & IN_ACCESS) { if (event->mask & IN_ISDIR) { printf("The directory %s with cookie %d was accessed.\n", event->name, event->cookie); } else { printf("The file %s with cookie %d was accessed.\n", event->name, event->cookie); } } i += sizeof(struct inotify_event) +event->len; } } (void) inotify_rm_watch(fd, wd); (void) close(fd); exit(0); }
Tiskni
Sdílej: