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

    Byla vydána verze 1.98.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána nová verze 7.1 (YouTube) svobodného open source redakčního systému WordPress. Kódové jméno Mary Lou bylo vybráno na počest americké jazzové klavíristky Mary Lou Williams (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 19:11 | Nová verze

    Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.4. Představení novinek také na YouTube. Bun byl přepsán z programovacího jazyka Zig do Rustu. Pomocí Claude Fable 5.

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

    Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | IT novinky

    Společnost PINE64 kvůli nedostatku a vysokým cenám DRAM a eMMC dočasně pozastavuje výrobu linuxových zařízení. Výroba zařízení jako PineTime, PineVoice a Pinecil pokračuje.

    Ladislav Hagara | Komentářů: 0
    včera 02:55 | IT novinky

    Společnost Stripe se dohodla na akvizici společnosti OpenRouter. Za 7,5 miliardy dolarů.

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

    Byla vydána nová verze 1.27 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    19.8. 16:00 | Pozvánky

    V pátek 28. srpna se v Praze uskuteční již osmý Mobile Linux Hackday. Jako obvykle se potkáme v pražské pobočce SUSE v Karlíně na Křižíkově, takže kromě mobilního Linuxu je to tentokrát i příležitost přijít se podívat na nově zrekonstruované kanceláře. Začínáme v 10:00, ale dorazit můžete samozřejmě kdykoliv v průběhu dne. Setkáním vás provede Petr Hodina, vývojář GPU ovladačů v Mesa 3D a jeden z hlavních lidí české komunity kolem mobilního … více »

    lkocman | Komentářů: 0
    19.8. 14:11 | IT novinky

    Představen byl Raspberry Pi Compute Module 5 Programming Jig. Jedná se o zařízení umožňující připravit Compute Module 5 do plně funkčního stavu bez nutnosti použití dalších vstupně / výstupních desek. Podporuje automatizaci pomocí nástroje rpi-sb-provisioner. Podrobnosti v dokumentaci.

    Ladislav Hagara | Komentářů: 2
    19.8. 05:55 | IT novinky

    Hackeři ve Francii ukradli data více než půl milionu daňových poplatníků. Je to jeden z největších hackerských útoků v dějinách země. O útoku z konce června informovala až teď daňová správa. Teprve od pondělí dotčeným občanům zasílá e-maily s instrukcemi, jak postupovat dál. Hackeři se sice nedostanou k penězům dotyčných, hrozí ale věrohodné podvody. Hackeři získali třeba celá jména, údaje o rodinných příslušnících nebo také údaje o

    … více »
    Ladislav Hagara | Komentářů: 22
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (19%)
     (30%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2449 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Vyrovnavacia pamat v linuxe

    28.9.2010 21:35 Igor Bielik
    Vyrovnavacia pamat v linuxe
    Přečteno: 666×
    Ahojte mam maly problem da sa nastavit vyrovnavacia pamat v linuxe tak aby sa nepouzivala? Skusal som funkcie setbuf, setbuffer ale nedari sa mi ju vypnut viac priklad.
    
    #include  
    
    int  main(void)
    {
      int  cislo[2];
      char retazec[2][10];
    
      fprintf(stdout, "Zadaj cislo 1: ");
      scanf("%d", &cislo[0]); 
      setbuf(stdin, NULL);
    
      fprintf(stdout, "Zadaj cislo 2: ");
      scanf("%d", &cislo[1]);
      setbuffer(stdin, NULL, 0);
    
      fprintf(stdout, "Zadaj retazec 1: ");
      fscanf(stdin, "%9s", retazec[0]);
    
      fprintf(stdout, "Zadaj retazec 2: ");
      fscanf(stdin, "%9s", retazec[1]);
    
      printf("%s %s %d %d\n", retazec[0], retazec[1],
                              cislo[0], cislo[1]);
    	return 0;
    }
      Chcel by som aby sa nacital iba prvy parameter a nie cely buffer. Napr: Zadaj cislo 2: 22 retazec1 retazec2
    a automaticky sa to nacita z bufferu ako tomu zabranit?
    
    
    

    Řešení dotazu:


    Odpovědi

    29.9.2010 10:24 luky
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    Nepochopil som co si mal presne na mysli. Ale vo vseobecnosti buffer sluzi na urychlenie prace s IO prudmi. Ak na vstup nedostanes to co ocakavas, problem bude skor vo formatovacom retazci pri volani funkcie scanf().

    29.9.2010 19:11 Sten
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    Nijak. Můžeš před vypsáním zadání přečíst (a zahodit) celý vstup (to dělá třeba su), ale proč to vůbec chceš dělat?
    29.9.2010 19:14 Sten
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    setbuf a setbuffer slouží pro výstupní proudy a jenom pro tu aplikaci (pro bufferování dat, která se poté předají jádru), nijak neovlivňují buffery v jádře (které mj. provádějí bufferování stdin). Více viz manuál
    29.9.2010 20:54 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    Vím že to jde, nevím zda i v linuxu.

    Prostě musí se ten proud stdout skopírovat a pak používat tu kopii kde už se dá buffer nastavit.

    Nebo nějak tak jsem to viděl v příkladu kdysi, jak přijedu domů skusím projít knížky.
    29.9.2010 21:02 Sten
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    Tohle jde u ISO C++ iostreamů (i bez kopírování), ale ne u ISO C
    29.9.2010 21:08 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    Myslím že ho trápí to že když napíše "123 hola" a [enter] tak sekvence scanf("%d"), scanf("%s") mu naparsuje 123 a "hola" a on místo toho chce aby se to na "hola" vysralo a vynutilo si to "123" [enter] "hola" [enter].
    In Ada the typical infinite loop would normally be terminated by detonation.
    30.9.2010 11:29 Sten
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    Ano, to chápu. su dělá to, že přečte a zahodí veškerý vstup předtím, než začne načítat heslo. Do konce řádku lze zahazovat vstup třeba pomocí while ((c = getchar()) != '\n' && c != EOF) ;
    29.9.2010 20:58 Igor Bielik
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    Proste slo mi oto aby uzivatel zadal iba jeden paramater resp. jednu hodnotu na vstupe.
    vlastikroot avatar 30.9.2010 06:26 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    fflush(stdin);
    We will destroys the Christian's legion ... and the cross, will be inverted
    30.9.2010 10:38 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    A skusil jsi to? To taky nefunguje.
    30.9.2010 14:14 Igor Bielik
    Rozbalit Rozbalit vše Re: Vyrovnavacia pamat v linuxe
    Tak som si nasiel zdrojak su a pozrel ako to je riesene tam. Cez funkciu getline tak som ju tiez pouzil a funguje to podla mojich predstav. Dakujem vsetkym za pomoc.

    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.