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

    Byla vydána verze 0.81 telnet a ssh klienta PuTTY. Opravena je kritická bezpečnostní chyba CVE-2024-31497 obsažena ve verzích 0.68 až 0.80. Používáte-li klíč ECDSA NIST P521 a použili jste jej v PuTTY nebo Pageantu, považujte jej za kompromitovaný.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | Komunita

    Hra MineClone2 postavena nad voxelovým herním enginem Minetest byla přejmenována na VoxeLibre.

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

    Společnosti Avast Software s.r.o. byla pravomocně uložena pokuta ve výši 351 milionů Kč. Tu uložil Úřad pro ochranu osobních údajů za neoprávněné zpracování osobních údajů uživatelů jejího antivirového programu Avast a jeho rozšíření internetových prohlížečů (Browser Extensions), k čemuž docházelo prokazatelně po část roku 2019.

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 15:55 | Zajímavý článek

    Bylo vydáno do češtiny přeložené číslo 714 týdeníku WeeklyOSM přinášející zprávy ze světa OpenStreetMap.

    Ladislav Hagara | Komentářů: 0
    včera 15:44 | Pozvánky

    V sobotu 20. dubna lze navštívit Maker Faire Jihlava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Zajímavý software

    Knihovna pro potlačení šumu RNNoise byla vydána ve verzi 0.2. Kvalitu potlačení lze vyzkoušet na webovém demu.

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

    FRRouting (FRR) (Wikipedie), tj. softwarová sada pro směrování síťové komunikace, fork Quagga, byl vydán ve verzi 10.0.

    Ladislav Hagara | Komentářů: 0
    včera 03:22 | Nová verze

    Julian Andres Klode vydal APT (Advanced Packaging Tool) ve verzích 2.9.0 a 2.9.1. Jedná se o vývojové verze nové větve APT 3.0. Vylepšuje se uživatelské rozhraní. Přidány byly barvičky. Aktuální náhledy a vývoj lze sledovat na Mastodonu.

    Ladislav Hagara | Komentářů: 3
    14.4. 17:00 | Komunita

    Miguel de Icaza se na svém blogu rozepsal o vložitelných herních enginech. Kdysi slibné projekty UrhoSharp a Urho3D jsou již mrtvé. Zůstává Godot. Aktuálně vývojáři řeší Pull request #90510 s návrhem knihovny LibGodot.

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

    Byla vydána nová verze 5.0 linuxové distribuce Lakka, jež umožňuje transformovat podporované počítače v herní konzole. Nejnovější Lakka přichází s RetroArchem 1.17.0.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (60%)
     (13%)
     (2%)
     (25%)
    Celkem 402 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Převod off64_t na řetězec

    Jardík avatar 14.4.2006 22:04 Jardík | skóre: 40 | blog: jarda_bloguje
    Převod off64_t na řetězec
    Přečteno: 239×
    Chvilku jsem googlil, ale nikde jsem nenašel, jak převést na řetězec neznaménkové 64bit číslo jako je např. off64_t. Zkoušel jsem to pomocí sprintf, ale bezúspěšně.
    Věřím v jednoho Boha.

    Odpovědi

    Luboš Doležel (Doli) avatar 14.4.2006 22:07 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    sprintf, %llu
    Jardík avatar 14.4.2006 22:26 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Bohužel to nefunguje:
    off64_t cislo = 1024*1024*1024*6;
    char buffer[500];
    sprintf( buffer, "%llu", cislo );
    
    Ukáže to 2147483648, což není správně.
    Věřím v jednoho Boha.
    Luboš Doležel (Doli) avatar 14.4.2006 22:35 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Takhle to dělat nemůžete:
    test.c:10: warning: integer overflow in expression
    test.c:10: warning: overflow in implicit constant conversion
    Musíte alespoň za jedno číslo přidat ULL.
    $ ./test
    6442450944
    
    Jardík avatar 14.4.2006 22:39 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    I když dám ULL za všechny, tak to hodí stejně stejný výsledek. Nemůže to dělat kompilátor (MinGW)?
    Věřím v jednoho Boha.
    14.4.2006 22:37 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Co tohle?
    sprintf(buffer, "%.0lf", (double) cislo);
    
    Jardík avatar 14.4.2006 22:44 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Tohle funguje (s tím ULL), ale není double znaménkový? Co když budu mít číslo 2^64?
    Věřím v jednoho Boha.
    14.4.2006 22:46 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Typ off_t je z podstaty věci také znaménkový.
    14.4.2006 22:46 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    A off64_t samozřejmě také.
    Jardík avatar 14.4.2006 22:59 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Teď jsem se kouknul do sys/types.h a on je opravdu znaménkový. Takže se omlouvám za nesprávný výrok. Tím se ale také vše mění. Takže co teď předat funkci sprintf místo %llu a co psát za čísla místo ULL aby nedošlo k přetečení?
    Věřím v jednoho Boha.
    Luboš Doležel (Doli) avatar 14.4.2006 23:46 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    %lld a LL
    Jardík avatar 14.4.2006 23:58 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    off64_t cislo = 1024*1024*1024*6;
    char buffer[500];
    sprintf( buffer, "%lld", cislo );
    
    =-2147483648 = Špatně
    off64_t cislo = 1024LL*1024LL*1024LL*6LL;
    char buffer[500];
    sprintf( buffer, "%lld", cislo );
    
    =-2147483648 = Špatně
    off64_t cislo = 1024*1024*1024*6;
    char buffer[500];
    sprintf( buffer, "%.0lf", (double)cislo );
    
    =-2147483648 = Špatně
    off64_t cislo = 1024LL*1024LL*1024LL*6LL;
    char buffer[500];
    sprintf( buffer, "%.0lf", (double)cislo );
    
    =6442450944 = OK
    Zřejmě mi nic jiného nezbude a budu muset použít to přetypování. Zajímavé ale je, že tobě to funguje. Asi ten MinGW má fci sprintf nějakou divnou :-(.
    Věřím v jednoho Boha.
    15.4.2006 00:38 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Proč se bráníte použít odpovídající makro 'PRId64', jak jsem vám poradil dříve?
    Jardík avatar 15.4.2006 11:57 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Když jsem napsal sprintf( buffer, PRId64, cislo );, tak mi to ukázalo chybu, že proměnná není definována. Pak jsem se kouknul do toho hlavičkového souboru a zjistil, že musím před hlavičkový soubor připsat #define __STDC_FORMAT_MACROS. Poté se ale do bufferu dal řetězec "I64d". Pak jsem vyzkoušel sprintf( buffer, "%I64d", cislo); a ono to funguje :-). Díky moc za nakopnutí správným směrem.
    Věřím v jednoho Boha.
    Jardík avatar 15.4.2006 12:01 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Hmm. Z hlavičkového souboru inttypes.h:
    /* 7.8.1 Macros for format specifiers
     * 
     * MS runtime does not yet understand C9x standard "ll"
     * length specifier. It appears to treat "ll" as "l".
     * The non-standard I64 length specifier causes warning in GCC,
     * but understood by MS runtime functions.
     */
    
    A pak mi nemá fungovat %lld a %llu.
    Věřím v jednoho Boha.
    14.4.2006 22:45 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Převod off64_t na řetězec
    Tak zkuste použít standardní hlavičkové soubory:
      #include <inttypes.h>
    
      ...
      
      printf(PRId64, cislo);
    

    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.