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:22 | Bezpečnostní upozornění

    Byly zveřejněny informace o kritické zranitelnosti CVE-2026-64600 pojmenované RefluXFS (technické detaily) v XFS. Je tam již od verze Linuxu 4.11, tj. rok 2017. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel může editovat libovolný soubor, například klidně zrušit rootovské heslo v /etc/passwd. Videoukázka na Vimeo. V upstreamu je zranitelnost opravena.

    Ladislav Hagara | Komentářů: 0
    včera 13:46 | IT novinky

    OpenAI / ChatGPT má dnes výpadky (OpenAI Status, DownDetector).

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | Komunita

    Poskytovatel hostingu svobodných/open-source projektů Codeberg po hlasování na valné hromadě vydal stanovisko k využívání LLM. Kvůli vytěžování infrastruktury a rostoucím cenám hardwaru, ale také hrozbám pro spolupráci v komunitě se k LLM staví kriticky. Nebude poskytovat hosting projektů vytvářených LLM agenty.

    |🇵🇸 | Komentářů: 0
    24.7. 14:22 | Zajímavý projekt

    Jack Dorsey představil (𝕏) open source týmovou komunikační platformu Buzz (GitHub) s cílem snížit závislost na Slacku a GitHubu.

    Ladislav Hagara | Komentářů: 18
    23.7. 23:00 | Nová verze

    Poštovní klient Thunderbird byl vydán v nové verzi 153 s kódovým názvem Meadow. Jedná se o ESR (Extended Support Release) vydání. Přehled novinek v poznámkách k vydání. Vylepšuje OAuth. Thundermail lze používat bez instalace doplňku.

    Ladislav Hagara | Komentářů: 0
    23.7. 22:22 | Zajímavý článek

    AI tento rok naplno vtrhla do vývoje softwaru a výrazně ovlivňuje také open source projekty. Jiří Eischmann v příspěvku Jak mění AI open source na svém blogu rozebírá několik trendů, které v open source v poslední době v souvislosti s AI pozoruje, a jak tyto trendy svět otevřeného softwaru mění (Inflace projektů, Zahlcení kontroly, Klesající motivace zveřejňovat kód).

    Ladislav Hagara | Komentářů: 16
    23.7. 22:00 | IT novinky

    Evropská komise (EK) vyměřila americké internetové společnosti Google pokutu 890 milionů eur (21,5 miliardy Kč) za porušení unijního nařízení o digitálních trzích (DMA). Firma se podle unijní exekutivy provinila tím, že ve vyhledávači Google Search upřednostňovala vlastní služby a že podnikům ukládala omezení, která jim bránila nasměrovat spotřebitele k alternativním, často levnějším nákupním kanálům na platformě Google Play.

    … více »
    Ladislav Hagara | Komentářů: 2
    22.7. 19:44 | IT novinky

    Samsung na akci Galaxy Unpacked July 2026 (YouTube) představil své nové telefony Galaxy Z Fold8 Ultra, Fold8 a Flip8, hodinky Galaxy Watch Ultra2 a Watch9 a chytré brýle ve spolupráci s Gentle Monster a Warby Parker.

    Ladislav Hagara | Komentářů: 0
    22.7. 16:11 | IT novinky

    Po pěti letech vývoje vyšla česká počítačová hra Scarlet Deer Inn (ProtonDB). Scarlet Deer Inn je vyšívaná temná středověká pohádka. Zatímco život ve zdánlivě obyčejné vesnici se točí kolem běžných povinností a sousedských drbů, v podzemí se skrývají zlověstná tajemství.

    Ladislav Hagara | Komentářů: 2
    22.7. 13:33 | IT novinky

    Představen byl Raspberry Pi Touch Display 2 s uhlopříčkou 10 palců a rozlišením 1200 × 1920 pixelů. Cena je 80 dolarů.

    Ladislav Hagara | Komentářů: 11
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 2223 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Dotaz: Neúplný výstup na stdout při O_NONBLOCK stdin

    24.3.2008 01:04 martyone | skóre: 18
    Neúplný výstup na stdout při O_NONBLOCK stdin
    Přečteno: 613×
    Veselé velikonoce všem! :-)

    Můj problém je v ukázce kódu níže – jakmile nastavím stdin flag O_NONBLOCK, následující výstup na stdout se po chvíli zastaví a nehodlá pokračovat. Jakmile flag na stdin zruším, vše opět funguje jak má. Je to standardní chování? Dá se ovlivnit?

    Díky za každou reakci

    
    #include <unistd.h>
    #include <fcntl.h>
    #include <stdio.h>
    
    
    int main(int argc, char** argv)
    {
    	int flags, i;
    	char foo[]=
    		"% 6d 012345678901234567890123456789012345678901234567890123456789\n";
    
    	// vypise se vse
    	for (i= 0; i < 10000; i++) printf(foo, i);
    
    	// vypise se
    	puts("\nklavesu...");
    	fgetc(stdin);
    
    	flags= fcntl(fileno(stdin), F_GETFL, 0);
    	fcntl(fileno(stdin), F_SETFL, flags | O_NONBLOCK);
    
    	// NEvypise se vse
    	for (i= 0; i < 10000; i++) printf(foo, i);
    
    	// NEvypise se ani tohle
    	puts("\n*** KONEC ***");
    
    	fcntl(fileno(stdin), F_SETFL, flags);
    
    	// tohle se uz vypise
    	puts("\nklavesu...");
    	fgetc(stdin);
    
    	// vypise se vse
    	for (i= 0; i < 10000; i++) printf(foo, i);
    
    	// vypise se
    	puts("\n*** KONEC ***");
    
    	return (0);
    }
    

    Odpovědi

    Luboš Doležel (Doli) avatar 24.3.2008 01:05 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Neúplný výstup na stdout při O_NONBLOCK stdin
    Střílím: nepomohlo by udělat flush na ten stdout?
    24.3.2008 19:34 martyone | skóre: 18
    Rozbalit Rozbalit vše Re: Neúplný výstup na stdout při O_NONBLOCK stdin
    Bohužel ne – to dělám v původním (C++) kódu, kde jsem se s tímto chováním setkal.
    24.3.2008 01:37 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Neúplný výstup na stdout při O_NONBLOCK stdin
    24.3.2008 19:43 martyone | skóre: 18
    Rozbalit Rozbalit vše Re: Neúplný výstup na stdout při O_NONBLOCK stdin
    Musím se přiznat, že jsem nějak nenašel souvislost(?) …
    24.3.2008 20:48 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Neúplný výstup na stdout při O_NONBLOCK stdin
    Pôvodne som si myslel, že je problém v tom, že aj rodičovskému procesu sa nastaví stdin na neblokujúci.

    Problém je pravdepodobne inde, ale vyzerá to tak, že je to s tým odkazom súvisí. Keď je zariadenie terminál, tak stdin, stdout a stderr je v podstate rovnaký súbor (pravdepodobne je file descriptor iba zduplikovaný) a zmena jedného na NONBLOCK zmení aj ostatné (aspoň ja som to tak pochopil).

    Na jednej stránke som našiel citát R. Stevensa z UNIX Network Programming Vol1, p.399
    using standard I/O with nonblocking descriptors, a recipe for disaster
    (ale celé som to nečítal, takže neviem, v čom je ten problém)

    Tento program dokazuje, že zmena stdin na neblokujúci, zmení aj stdout a stderr (aspoň u mňa).
    #include <unistd.h>
    #include <fcntl.h>
    #include <stdio.h>
    
    
    int main(int argc, char** argv)
    {
    	int flags;
    
    	fprintf(stdout, "stdin: %s\n", (fcntl(fileno(stdin), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
    	fprintf(stdout, "stdout: %s\n", (fcntl(fileno(stdout), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
    	fprintf(stdout, "stderr: %s\n", (fcntl(fileno(stderr), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
    
    	flags= fcntl(fileno(stdin), F_GETFL, 0);
    	fcntl(fileno(stdin), F_SETFL, flags | O_NONBLOCK);
    
    	fprintf(stdout, "stdin: %s\n", (fcntl(fileno(stdin), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
    	fprintf(stdout, "stdout: %s\n", (fcntl(fileno(stdout), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
    	fprintf(stdout, "stderr: %s\n", (fcntl(fileno(stderr), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
    
    	fcntl(fileno(stdin), F_SETFL, flags);
    
    	return (0);
    }
    
    24.3.2008 21:37 martyone | skóre: 18
    Rozbalit Rozbalit vše Re: Neúplný výstup na stdout při O_NONBLOCK stdin
    Aha, děkuju :-)

    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.