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 22:55 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.

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

    Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.

    |🇵🇸 | Komentářů: 0
    včera 13:00 | Humor

    Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.

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

    Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.

    Ladislav Hagara | Komentářů: 6
    včera 00:33 | IT novinky

    V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.

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

    MALUS je kontroverzní proprietarní nástroj, který svým zákazníkům umožňuje nechat AI, která dle tvrzení provozovatelů nikdy neviděla původní zdrojový kód, analyzovat dokumentaci, API a veřejná rozhraní jakéhokoliv open-source projektu a následně úplně od píky vygenerovat funkčně ekvivalentní software, ovšem pod libovolnou licencí.

    NUKE GAZA! 🎆 | Komentářů: 17
    13.3. 03:55 | Bezpečnostní upozornění

    Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.

    Ladislav Hagara | Komentářů: 2
    12.3. 17:22 | Nová verze

    Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 0
    12.3. 03:44 | Nová verze

    Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).

    Ladislav Hagara | Komentářů: 4
    12.3. 02:11 | Komunita

    Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (0%)
     (11%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1080 hlasů
     Komentářů: 26, poslední 12.3. 08:56
    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: 541×
    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.