abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 14:00 | Zajímavý článek

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 12:00 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 0
    17.7. 18:44 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).

    Ladislav Hagara | Komentářů: 1
    17.7. 16:11 | Nová verze

    Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 2
    17.7. 15:55 | Komunita

    Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.

    Ladislav Hagara | Komentářů: 5
    16.7. 21:22 | IT novinky

    Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.

    Ladislav Hagara | Komentářů: 19
    16.7. 16:22 | IT novinky

    Vláda dne 16. července 2025 schválila návrh nového jednotného vizuálního stylu státní správy. Vytvořilo jej na základě veřejné soutěže studio Najbrt. Náklady na přípravu návrhu a metodiky činily tři miliony korun. Modernizovaný dvouocasý lev vychází z malého státního znaku. Vizuální styl doprovází originální písmo Czechia Sans.

    Ladislav Hagara | Komentářů: 26
    16.7. 15:33 | Upozornění

    Vyhledávač DuckDuckGo je podle webu DownDetector od 2:15 SELČ nedostupný. Opět fungovat začal na několik minut zhruba v 15:15. Další služby nesouvisející přímo s vyhledáváním, jako mapyAI asistent jsou dostupné. Pro některé dotazy během výpadku stále funguje zobrazování například textu z Wikipedie.

    bindiff | Komentářů: 8
    16.7. 13:33 | Bezpečnostní upozornění

    Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).

    Ladislav Hagara | Komentářů: 5
    16.7. 00:11 | Nová verze

    Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (27%)
     (7%)
     (3%)
     (0%)
     (1%)
     (4%)
    Celkem 410 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    12.12.2008 01:38 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: C / C++ - techniky programovani bez nekonecne smycky
    Ach jo. Dobrá, budu se tvářit, že nemám den nahovno a místo toho, abych tě poslal RTFM, tak trochu rozvedu to, co jsem myslel pod "najít si něco o signálech a jejich použití"

    V Linuxu máš nějaké signály, jejich seznam najdeš na webu, v man kill, v htopu. Ty, jak už název napovídá, signalizují, že se něco stalo.

    Například si vezměme SIGTERM - tenhle signál se pošle programu, když mu dáš Ctrl-C, když se vypíná počítač (zařizuje nějaký skript, pošle SIGTERM všem) apod. Program má automaticky v sobě zabudovanou nějakou obsluhu tohoto signálu (většinou takovou, která program ukončí), ale ty ji můžeš předefinovat, například ji nechat vypsat "teď se nemůžu ukončit" a nechat program běžet dál. man sigaction

    Pak tu máme signál SIGIO, který tě asi bude zajímat víc. Ten se procesu pošle může poslat ve více případech; pošle se jenom, když si nastavíš, že chceš, aby se ti poslal (tj. není to automatické.) Postup je přibližně takhle:
    1. Otevře se port
    2. Nastaví se, že program bude obsluhovat signál SIGIO (man sigaction)
    3. dvě fcntl, jedno řekne, že otevřený popisovač souboru sériového portu bude programu posílat SIGIO, druhý přepne port do asynchronního režimu
    Podrobnější info - UTFG (linux serial port programming) - můžeš "zkusit štěstí", je to první odkaz. Doporučuji prohlédnout, než tohle budeš číst dál.
    Proste prijdou data na port, vygeneruje se udalost, kterou vyridim, uzivatel pohne joystickem, vygeneruje se udalost na kterou patricne zareaguji. Vyprsi casovac, provede se nejaka akce.
    Výše uvedené v tomhle případě stačit nebude (možná by to šlo, ale je to pěkný hnus), proto je tu druhá varianta. Na funkce jednotlivě obsluhující signály se vykašleme (zapomeň na sigaction, místo toho se zablokují všechny signály, na které chceš reagovat (man sigemptyset, man sigaddset, man sigprocmask), nastavíš, co je potřeba nastavit (např. ty fcntl z příkladu výše) a vstoupíš do nekonečné smyčky:

    (Příklad - program může přijmout data z portu, každou vteřinu vyprší časovač, pomocí Ctrl-C se to celé ukončí.)
    for (;;) {
      rv = sigwaitinfo (&signaly_waitset, &signal_info);
      if (rv < 0) {
        ...
        }
      switch (signal_info.si_signo) {
        case SIGALRM: {
          printf ("Uplynula jedna vteřina, spácháme periodickou činnost\n");
          ...
          break;
          }
        case SIGTERM: {
          printf ("Program končí\n");
          ...
          exit(0)
          }
        case SIGIO: {
          printf ("Přišla nám od někoho nějaká data, zjistíme, kdo to je a co chce\n");
          ...
          break;
          }
        default: {
          printf ("Přišel signál, který jsme si neobjednali, vynadáme číšníkovi\n");
          break;
          }
        }
      }
    Tohle už je lepší a dělá to víceméně to, co potřebuješ. V té smyčce mohou být další věci, ale pozor - program se ve volání sigwaitinfo zastaví a bude čekat tak dlouho, dokud nepřijde nějaký signál. (Přesněji - zastaví se vlákno, ve kterém tu funkci voláš, jiná vlákna samozřejmě poběží dál.)

    Ještě pořád to má háček, že u obsluhy toho SIGIO budeš muset zjistit, odkud ta data přišla (pokud tedy nebudeš takto asynchronně přijímat jenom z jednoho souboru), což je trochu protivné. Nechá se to obejít tak, že si místo SIGIO necháš posílat nějaký real-time signál a pak ve struktuře signal_info dostaneš informaci o tom, ze kterého fd ten signál přišel.
    Quando omni flunkus moritati

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.