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 14:22 | Nová verze

    Byla vydána nová verze 4.8.0 interaktivního shellu fish (friendly interactive shell, Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 12:00 | Nová verze

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem se nově stal čínský LineShine v Národním superpočítačovém centru v Šen-čenu (NSCS) s výkonem 2,198 exaFLOPS. Z prvního místa sesadil americký superpočítač El Capitan s výkonem 1,809 exaFLOPS. Nejvýkonnější český počítač C24 klesl na 215 místo. Karolina, GPU partition klesla na 249. místo a Karolina, CPU partition na 475. místo.

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 21:00 | IT novinky

    Zemřel průkopník videoherní hudby Bobby Prince (Wikipedie). Složil hudbu pro hry Wolfenstein 3D, Doom, Doom II, Duke Nukem II a Duke Nukem 3D.

    Ladislav Hagara | Komentářů: 4
    včera 15:55 | IT novinky

    Počítačová hra Operace Flashpoint (Arma: Cold War Assault) od společnosti Bohemia Interactive slaví 25 let. Při této příležitosti bylo publikováno bezplatné hratelné Arma: Cold War Assault Remastered Demo a na GitHubu byly zveřejněny zdrojové kódy.

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

    Na trh v České republice přichází HP EliteBoard G1a. Jde o plnohodnotný AI počítač integrovaný přímo do těla klávesnice, tedy zařízení, které na první pohled vypadá jako minimalistická klávesnice, ale ve skutečnosti nahrazuje klasickou počítačovou jednotku.

    Ladislav Hagara | Komentářů: 13
    včera 10:55 | Nová verze

    V lednu bylo oznámeno, že desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. O víkendu byla vydána první preview verze.

    Ladislav Hagara | Komentářů: 0
    22.6. 23:44 | Nová verze

    Minulý týden byl oficiálně vydán Android 17. Detaily na blogu a stránkách věnovaných vývojářům.

    Ladislav Hagara | Komentářů: 7
    22.6. 20:00 | IT novinky

    Dnes jde do prodeje zařízení Steam Machine. Steam Machine 512 GB za 1 039 EUR a Steam Machine 2 TB za 1 359 EUR. Do čtvrtka 25. června do 19:00 se lze zapsat na seznamy. Ty budou jednorázově náhodně slosovány, čímž bude určeno pořadí rezervací a čekacích listin.

    Ladislav Hagara | Komentářů: 19
    22.6. 14:44 | Nová verze

    Vývojáři OpenMW (Wikipedie) oznámili vydání verze 0.51.0 této svobodné implementace enginu pro hru The Elder Scrolls III: Morrowind. Přehled novinek v oznámení o vydání a také na YouTube a PeerTube.

    Ladislav Hagara | Komentářů: 0
    22.6. 13:33 | Nová verze

    Byla vydána nová verze 2026.3.0 "Carousels & Killer Whales" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (2%)
     (16%)
     (26%)
    Celkem 1976 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Vyrovnavacia pamat v linuxe

    28.9.2010 21:35 Igor Bielik
    Vyrovnavacia pamat v linuxe
    Přečteno: 536×
    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.