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 02:00 | Zajímavý článek

    Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 22:55 | Nová verze

    Byla vydána verze 0.5.20 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | IT novinky

    Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Zajímavý článek

    Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.

    Ladislav Hagara | Komentářů: 6
    15.2. 21:55 | Zajímavý software

    Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.

    NUKE GAZA! 🎆 | Komentářů: 0
    15.2. 13:55 | Nová verze

    Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.

    Ladislav Hagara | Komentářů: 3
    14.2. 12:33 | Zajímavý projekt

    Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.

    NUKE GAZA! 🎆 | Komentářů: 1
    14.2. 12:22 | Nová verze

    Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.

    Ladislav Hagara | Komentářů: 0
    14.2. 05:00 | Komunita

    Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).

    Ladislav Hagara | Komentářů: 9
    13.2. 19:44 | Zajímavý projekt

    Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (4%)
     (1%)
     (12%)
     (27%)
    Celkem 882 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: write() zpusobi stale vyvolavani SIGIO

    22.10.2011 01:20 atmel8051
    write() zpusobi stale vyvolavani SIGIO
    Přečteno: 203×
    Zdravim, pisu program kterej komunikuje po seriove lince. Prijem dat funguje korektne, ovsem pri zapisu - write() dojde k preruseni SIGIO,ktere se opakuje stale dokola. Potrebuji vsak aby k preruseni programu doslo pouze pri prichodu dat. Je to muj prvni program kde vyuzivam signalu a nevim jak na to. Za kazdou radu budu moc rad.

    kousek kodu:
    //otevreni seriaku
        fd=open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NONBLOCK); //zajisteni spojeni mezi soub.deskript. a komun. portem
        if(fd<0){
            printf("\033[38mProblem pri otevirani serioveho portu.\033[0m\n\n");
            perror("/dev/ttyUSB0");
            return(1);
        }
        printf("\033[32mSeriovy port otevren v poradku.\033[0m\n");
    
        saio.sa_handler = funkce_pri_preruseni;
        sigemptyset(&saio.sa_mask);
        saio.sa_flags = 0;
        saio.sa_restorer = NULL;
        sigaction(SIGIO,&saio,NULL);                
    
        //povolit procesu prijmout SIGIO
        fcntl(fd, F_SETOWN, getpid());
        fcntl(fd, F_SETFL,O_NONBLOCK |  FASYNC); /
    
        tcgetattr(fd,&oldtio); //zaloha puvodniho nastaveni portu
        //nastaveni portu - Canonnical Input - radek ukoncen znakem ASCII LF
        newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD;
        newtio.c_iflag = IGNPAR | ICRNL;
        newtio.c_oflag = 0;
    //    newtio.c_lflag = ICANON;
        newtio.c_cc[VMIN]=1;
        newtio.c_cc[VTIME]=0;
        tcflush(fd, TCIFLUSH);
        tcsetattr(fd,TCSANOW,&newtio);
    
        write(fd,.....
    

    Odpovědi

    Bluebear avatar 22.10.2011 12:22 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
    Rozbalit Rozbalit vše Re: write() zpusobi stale vyvolavani SIGIO
    Myslím, že problém je tady:

    fcntl(fd, F_SETFL,O_NONBLOCK | FASYNC);

    Nastavením O_ASYNC žádáš, aby jádro poslalo SIGIO pokaždé, když je deskriptor připraven přijímat nebo dodat data; drtivou většinu SIGIO dostáváš proto, že deskriptor hlásí připravenost k přijetí dalších dat.

    Jiná otázka je, co s tím :-) Bohužel nevím o tom, že by šlo nastavit přijetí signálu jen při přijetí nových dat. Zdá se mi, že ti nezbyde buď při každém SIGIO ověřit stav deskriptoru a zjistit, která z těch situací nastala (select(), poll() nebo něco podobného), nebo, podle aplikace, nechat signály koňovi a používat místo nich select() nebo poll() rovnou.

    (Upozorňuji, že jsem odpůrce konceptu signálů, které jsou podle mne užitečné jen pro hlášení kritických situací, takže můj pohled je poněkud ovlivněn. :-) )
    To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
    Josef Kufner avatar 22.10.2011 14:41 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: write() zpusobi stale vyvolavani SIGIO
    Jo, taky bych to viděl spíš na použití select(). Ono tím, že vše béží v jedné smyčce a nikam se z ní neutíká, je vše takové přehlednější a líp se to ladí.
    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.