abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:33 | IT novinky

    Po vlastních microSD kartách nabízí nově Raspberry Pi také vlastní NVMe SSD disky. Samostatně i v sadách s M.2 HAT+.

    Ladislav Hagara | Komentářů: 0
    dnes 06:11 | Zajímavý článek

    Byla zveřejněna (𝕏) Zpráva o činnosti Digitální a informační agentury (DIA) za rok 2023 (pdf). Začíná slovy ředitele: "Vznik Digitální a informační agentury (DIA) je v posledních letech možná jedním z nejvýznamnějších kroků, který dodá potřebný impuls digitalizaci státní správy."

    Ladislav Hagara | Komentářů: 6
    dnes 05:11 | Nová verze

    Vývojáři AlmaLinuxu představili AlmaLinux OS Kitten 10, tj. vývojovou verzi AlmaLinux OS 10 vycházejícího z CentOS Stream 10. Přehled novinek v poznámkách k vydání. Proč Kitten? Verze AlmaLinux OS jsou pojmenované podle kočkovitých šelem. Z kotěte vyroste další kočka.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Nová verze

    Kryptografická knihovna OpenSSL byla vydána v nové verzi 3.4. Přehled změn na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 19:00 | IT novinky

    Bylo objeveno nové největší prvočíslo. Jedná se o Mersennovo prvočíslo známé též jako M136279841. To znamená, že v binární formě je prvočíslo tvořeno 136 279 841 jedničkami. Objeveno bylo v rámci distribuovaného výpočetních projektu GIMPS (Great Internet Mersenne Prime Search). Zajímavostí je, že na rozdíl od předchozích takto objevených prvočísel nebylo objeveno pomocí CPU, ale na grafické kartě NVIDIA A100 s pomocí programu Gpuowl.

    DaBler | Komentářů: 3
    včera 16:44 | IT novinky

    Protokol MQTT (Wikipedie) dnes slaví 25 let (Mastodon, 𝕏). První publikovaná specifikace je z 22. října 1999.

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | Nová verze

    Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.4. Přehled novinek na GitLabu. Z novinek lze zmínit podporu telefonu Google Pixel 7. Na stránkách Murena lze koupit Murena Pixel 7.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | Pozvánky

    Připojte se ve středu 30. 10. 2024 od 10:00 do 12:00 na náš webinář "Řízení přístupu do PostgreSQL prostřednictvím externího autentizačního providera" (registrace zdarma) a naučte se, jak nastavit ověřování pomocí GSSAPI pro bezpečný přístup k databázím (Microsoft Active Directory nebo FreeIPA). Záznam předchozího webináře "Co je nového v PostgreSQL 17" můžete zhlédnout zde.

    … více »
    Heřmi | Komentářů: 0
    21.10. 21:33 | Nová verze

    Byla vydána nová verze 0.55 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    21.10. 14:22 | IT novinky

    Dle plánu bylo dnes vydáno Factorio 2.0 a Factorio: Space Age, tj. aktualizace 2.0 počítačové hry Factorio (Wikipedie) oficiálně běžící také na Linuxu a velké vesmírní rozšíření Factorio: Space Age.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Maximalni velikost otviraneho txt souboru skrze FILE* v C

    tomes.io avatar 19.9.2012 16:27 tomes.io | skóre: 12 | blog: tomesh
    Maximalni velikost otviraneho txt souboru skrze FILE* v C
    Přečteno: 569×
    Ahoj,

    zajimalo by me, jak veliky muze byt textovy soubor, ktery otviram pro cteni. Resp. by me zajimalo, zda nize uvedeny program, ktery jen pocita vyskyt retezce v danem textovem souboru muze mit teoreticky i velikost nekolika GB, nebo je to nejak omezene?

    Chci, aby muj program sel radek po radku (max velikost radku je 512) a v kazdem, pokud najde hledany retzec 'do' spocital, kolikrat se na radku vyskytl a na kolikatem radku to vlastne bylo. Nize uvedeny program funguje pro "male" textove soubory o par radcich. Muze ale takovy program cist i velike soubory?
    
    
    void read_file (FILE *fr, char *what){
       
        char input[512];     
        int what_len = strlen(what);                             
        int line = 0;                                         //Counter of lines.
        int num = 0;     
       
        /*Reading a text file line by line.*/
       
        while (fgets(input, 512 , fr) != NULL){
           
           line++;        
           char *where = input;
           
            /*Checking an occurrence of searched string.*/
           
              while ((where = strstr(where, what))) {         
               where += what_len;
               num++;           
             }  //End of WHILE
               
             /* Value num > 0 Indicates an occurrence of searched string so that a message for a user can be printed.*/
           
             if (num > 0) {                                     
                printf("Searched string '%s' is found %d times on line %d\n", what, num, line);
           
                num = 0;   //Initial position for the next checking must be 0.
             }  //End of IF
                    
         }  //End of WHILE
       
        fclose(fr);
       
    }  //End of the function 'read_file'
    
    int main(){  
       
        char *what = "do";
        FILE *fr;
        fr = fopen("text.txt","r");    
        read_file(fr, what);   
        return 0;
    }
    

    Řešení dotazu:


    Odpovědi

    19.9.2012 16:56 Kit
    Rozbalit Rozbalit vše Re: Maximalni velikost otviraneho txt souboru skrze FILE* v C
    A proč si to nezkusíš? To je takový problém si vyrobit 20GB soubor s testovacími daty?

    Velikost limitována není. Záleží jen na typu souborového systému.
    tomes.io avatar 20.9.2012 21:51 tomes.io | skóre: 12 | blog: tomesh
    Rozbalit Rozbalit vše Re: Maximalni velikost otviraneho txt souboru skrze FILE* v C
    Nenapada me jak tak velky textovy soubor vygenerovat :) Mozna sloucit nekolik zdrojvych souboru linux jadra do jednoho :) Kazdopadne pokud velikost neni problem, tak jsem spokojeny. Diky.
    20.9.2012 22:37 Sten
    Rozbalit Rozbalit vše Re: Maximalni velikost otviraneho txt souboru skrze FILE* v C
    while [ "$(ls -l test.txt | awk '{ print $5 }')" -lt "20000000000" ]; do cat nejaky_kratky_dokument.txt >>test.txt done
    20.9.2012 23:05 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Maximalni velikost otviraneho txt souboru skrze FILE* v C
    10MiB plný '\0':
    dd if=/dev/zero of=10MiB.files bs=1048576 count=10
    10MiB random (o kus pomalejší):
    dd if=/dev/urandom of=10MiB.files bs=1048576 count=10
    Stačí jen upravit 10 na 20480 a je 20GiB files.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    21.9.2012 06:58 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: Maximalni velikost otviraneho txt souboru skrze FILE* v C
    Na súbore plnom núl mu asi jeho fgets() bude platné ako popolník na motorke.

    @ ToMesh: do 32-bitov dĺžky je to bez problémov. Pre väčšie hľadaj large file support glibc.
    21.9.2012 11:43 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Maximalni velikost otviraneho txt souboru skrze FILE* v C
    Na súbore plnom núl mu asi jeho fgets() bude platné ako popolník na motorke.
    A to prečo?
    Přečte to vždy právě 511 znaků - nic následný kód sice nenajde, ale celý soubor bude normálně přečten.

    Pro autora dotazu: u gcc by mělo stačit, přidat při kompilaci parametr (define) -D_FILE_OFFSET_BITS=64
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    21.9.2012 11:46 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Maximalni velikost otviraneho txt souboru skrze FILE* v C
    Na 32bit to obvykle je limitováno (proto to nezvládnou ani standardní compilace PHP-ek na 32bit).
    K odstranění limitu je třeba kompilovat s -D_FILE_OFFSET_BITS=64.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    tomes.io avatar 21.9.2012 19:56 tomes.io | skóre: 12 | blog: tomesh
    Rozbalit Rozbalit vše Re: Maximalni velikost otviraneho txt souboru skrze FILE* v C
    Diky, ten kompilacni prikaz je asi to co jsem potreboval, prihodim do Makefilu :)

    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.