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 00:44 | Nová verze

    Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | Komunita

    FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Sociální síti 𝕏 (dříve Twitter) má dnes 20 let. Pro veřejnost byla zpřístupněna 15. července 2006.

    Ladislav Hagara | Komentářů: 1
    včera 14:22 | Zajímavý software

    Insula Faktury je open source generátor faktur, který běží přímo ve webovém prohlížeči. Žádná registrace, žádné sledování, žádné omezení. Zdrojové kódy jsou k dispozici na Codebergu.

    Ladislav Hagara | Komentářů: 5
    včera 13:22 | Komunita

    První Mobile Linux Hackday v Plzni, tj. komunitní setkání věnované Linuxu na mobilních zařízeních, proběhne 24. července od 10:00. Akce je otevřená všem zájemcům – od zvědavců po zkušené vývojáře. Dopoledne proběhnou přednášky Davida Heidelberga a Petra Hodiny o aktuálním stavu mobilního Linuxu: proč vůbec chtít tučňáka v kapse, jaké telefony jsou dnes dobře podporované a co taková podpora obnáší. Po obědě se zaměříme na konkrétní

    … více »
    Ladislav Hagara | Komentářů: 0
    14.7. 19:33 | Nová verze

    3D software Blender byl vydán ve verzi 5.2 s prodlouženou podporou. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    14.7. 16:55 | Zajímavý software

    SketchForge 3D (GitHub, reddit) je open source 3D editor / CAD běžící ve webovém prohlížeči bez nutnosti účtu nebo cloudového úložiště. Inspirovaný byl Tinkercadem. Doporučena je lokální instalace.

    Ladislav Hagara | Komentářů: 0
    14.7. 12:44 | Nová verze

    Byla vydána nová verze 11.9 webového prohlížeče Midori (Wikipedie, GitHub). S novým centrem ovládání, pokročilejším blokováním reklam, optimalizací výkonu…

    Ladislav Hagara | Komentářů: 0
    14.7. 04:22 | Zajímavý projekt

    Na Crowd Supply běží kampaň na podporu open source čtečky elektronických knih Open Book Touch. Postavena je na ESP32-S3. Má 4,26palcový dotykový e-papírový displej s rozlišením 480×800 pixelů, podsvícení, slot na microSD kartu. Cena je 149 dolarů a poštovné 12 dolarů. Dodání je plánováno na duben 2027.

    Ladislav Hagara | Komentářů: 8
    13.7. 18:00 | IT novinky

    Na Humble Bundle běží akce Linux: All the Things by O'Reilly a Picos, HATs, and More by Raspberry Pi Press. Elektronické knihy lze koupit se slevou a současně podpořit organizace Code for America a Raspberry Pi Foundation.

    Ladislav Hagara | Komentářů: 5
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 2131 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: gcc v twilight zone

    18.6.2014 21:56 klid
    gcc v twilight zone
    Přečteno: 407×
    Zdravím vospolok,

    Vie mi niekto vysvetliť tento jav?

    Mám takýto nezmyselný program, volá sa fork7.c
    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    
    main () {
    	printf("alfa\n");
    	fork();
    	fork();
    	fork();
    
    }
    
    Skompilujem ho takto
    gcc fork7.c -o fork7
    
    Keď spustím program ./fork7, vypíše alfa a skončí. To je očakávané a žiadúce.

    Keď ho ale spustím takto:
    ./fork7 > out.txt
    
    V súbore out.txt mám riadok alfa osemkrát! Chová sa to tak, ako keby výpis bol na konci programu, pod forkami. Je to zle, ale rozumiem tomu. Prečo to ale vypisuje potom na konzolu alfa iba raz?

    Řešení dotazu:


    Odpovědi

    Řešení 1× (rADOn)
    18.6.2014 22:52 Sten
    Rozbalit Rozbalit vše Re: gcc v twilight zone
    Protože výstup na konzoli se bufferuje po řádcích, zatímco do souboru po blocích.

    Při zápisu na konzoli se tudíž zapíše do bufferu alfa\n, a protože je tam konec řádku, tak se buffer flushne (zapíše na výstup). Provede se fork a při ukončení každého dítěte se buffer znovu flushne. Ale protože tam už nic není, tak se nic nevypíše.

    Při zápisu do souboru se zapíše do bufferu alfa\n, ale to je menší než blok (standardně to bývá jedna stránka), tak se to neflushne. Provede se fork, všechny děti tak získají kopii toho bufferu, který se při ukončení flushne. Ale teď prázdný není, každý proces má svoji vlastní kopii a tu vypíše.

    Stejný efekt (vypíše se 8×) uvidíte i při zápisu na konzoli, pokud ve vypisovaném textu nebude znak ukončení řádku.
    18.6.2014 23:07 Sten
    Rozbalit Rozbalit vše Re: gcc v twilight zone
    Btw. řešení je před fork() dát fflush(stdout)

    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.