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í
×
    dnes 01:22 | Nová verze

    Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Nová verze

    Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.

    Ladislav Hagara | Komentářů: 1
    včera 16:11 | Nová verze

    Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Humor

    Asociace repair.org udělila anticeny těm nejhorším produktům představeným na veletrhu CES 2026. Oceněnými jsou například šmírující kamery Amazon Ring AI, chytrý běžecký pás od společnosti Merach, která otevřeně přiznává, že nedokáže zabezpečit osobní data uživatelů, případně jednorázové lízátko, které rozvibrovává čelisti uživatele a tak přehrává hudbu. Absolutním vítězem je lednička od Samsungu, která zobrazuje reklamy a kterou lze otevřít pouze hlasovým příkazem přes cloudovou službu.

    NUKE GAZA! 🎆 | Komentářů: 7
    včera 12:00 | IT novinky

    Íránští protirežimní aktivisté si všímají 30% až 80% ztráty packetů při komunikaci se satelity služby Starlink. Mohlo by se jednat o vedlejší důsledek rušení GPS, kterou pozemní přijímače Starlinku používají k výpočtu polohy satelitů a kterou se režim rovněž snaží blokovat, podle bezpečnostního experta a iranisty Amira Rashidiho je ale pravděpodobnější příčinou terestrické rušení přímo satelitní komunikace Starlinku podobnou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 6
    včera 00:55 | IT novinky

    Evropská komise (EK) zvažuje, že zařadí komunikační službu WhatsApp americké společnosti Meta mezi velké internetové platformy, které podléhají přísnější regulaci podle unijního nařízení o digitálních službách (DSA). Firmy s více než 45 miliony uživatelů jsou podle DSA považovány za velmi velké on-line platformy (Very Large Online Platforms; VLOP) a podléhají přísnějším pravidlům EU pro internetový obsah. Pravidla po

    … více »
    Ladislav Hagara | Komentářů: 15
    včera 00:44 | IT novinky

    Tržní hodnota technologické společnosti Alphabet poprvé v historii přesáhla čtyři biliony dolarů (83 bilionů Kč). Stalo se tak poté, co Apple oznámil, že bude na poli umělé inteligence (AI) spolupracovat s dceřinou firmou Alphabetu, společností Google.

    Ladislav Hagara | Komentářů: 3
    12.1. 11:11 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 161 (pdf).

    Ladislav Hagara | Komentářů: 0
    12.1. 10:44 | Nová verze

    Po delší době vývoje vyšla nativní linuxová verze virtuálního bubeníka MT-PowerDrumKit 2 ve formátu VST3. Mezi testovanými hosty jsou Reaper, Ardour, Bitwig a Carla.

    balda | Komentářů: 1
    11.1. 21:33 | Nová verze

    Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (5%)
     (0%)
     (9%)
     (20%)
     (3%)
     (6%)
     (3%)
     (11%)
     (48%)
    Celkem 404 hlasů
     Komentářů: 11, poslední včera 15:18
    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.