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 19:22 | Zajímavý článek

    Pornhub zveřejnil podrobné statistiky za rok 2025. V části věnované zařízením a technologiím se lze dočíst, že 87 % přenášených dat směrovalo na telefony, 2 % na tablety a 11 % na desktopy. Operační systém Linux běžel na 6,3 % desktopů. O 22,4 % více než před rokem. Firefox má na desktopu 8,4 % podíl.

    Ladislav Hagara | Komentářů: 0
    dnes 13:11 | Pozvánky

    Chcete vědět, co se odehrálo ve světě techniky za poslední měsíc? Nebo si popovídat o tom, co zrovna bastlíte? Pak dorazte na prosincovou Virtuální Bastlírnu s mikrofonem a kamerou, nalijte si něco k pití a ponořte se s strahovskými bastlíři do diskuze u virtuálního piva o technice i všem možném okolo. O čem budou tentokrát strahováci referovat? Téměř každý už si všiml významného zdražení RAM a SSD, jsou zde ale i příjemnější zprávy. Průša uvádí

    … více »
    bkralik | Komentářů: 0
    dnes 12:55 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) podporuje vyjádření partnerů ze Spojeného království, kteří upozorňují na škodlivé aktivity společností Anxun Information Technology (též „I-S00N“) (pdf) a Beijing Integrity Technology (též „Integrity Tech“) působících v kyberprostoru a sídlících v Čínské lidové republice (ČLR). Tyto společnosti jsou součástí komplexního ekosystému soukromých subjektů v ČLR,

    … více »
    Ladislav Hagara | Komentářů: 2
    dnes 04:55 | IT novinky

    Společnost Pebble představila (YouTube) prsten s tlačítkem a mikrofonem Pebble Index 01 pro rychlé nahrávání hlasových poznámek. Prsten lze předobjednat za 75 dolarů.

    Ladislav Hagara | Komentářů: 6
    dnes 04:22 | IT novinky

    Společnost JetBrains v listopadu 2021 představila nové IDE s názvem Fleet. Tento týden oznámila jeho konec. Od 22. prosince 2025 již nebude možné Fleet stáhnout.

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

    Byl vydán Mozilla Firefox 146.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 146 bude brzy k dispozici také na Flathubu a Snapcraftu.

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

    Před rokem převzala Digitální a informační agentura (DIA) vlastnictví a provoz jednotné státní domény gov.cz. Nyní spustila samoobslužný portál, který umožňuje orgánům veřejné moci snadno registrovat nové domény státní správy pod doménu gov.cz nebo spravovat ty stávající. Proces nové registrace, který dříve trval 30 dní, se nyní zkrátil na několik minut.

    Ladislav Hagara | Komentářů: 7
    včera 11:33 | IT novinky

    IBM kupuje za 11 miliard USD (229,1 miliardy Kč) firmu Confluent zabývající se datovou infrastrukturou. Posílí tak svoji nabídku cloudových služeb a využije růstu poptávky po těchto službách, který je poháněný umělou inteligencí.

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

    Nejvyšší správní soud (NSS) podruhé zrušil pokutu za únik zákaznických údajů z e-shopu Mall.cz. Incidentem se musí znovu zabývat Úřad pro ochranu osobních údajů (ÚOOÚ). Samotný únik ještě neznamená, že správce dat porušil svou povinnost zajistit jejich bezpečnost, plyne z rozsudku dočasně zpřístupněného na úřední desce. Úřad musí vždy posoudit, zda byla přijatá opatření přiměřená povaze rizik, stavu techniky a nákladům.

    Ladislav Hagara | Komentářů: 13
    8.12. 18:44 | Komunita

    Organizace Free Software Foundation Europe (FSFE) zrušila svůj účet na 𝕏 (Twitter) s odůvodněním: "To, co mělo být původně místem pro dialog a výměnu informací, se proměnilo v centralizovanou arénu nepřátelství, dezinformací a ziskem motivovaného řízení, což je daleko od ideálů svobody, za nimiž stojíme". FSFE je aktivní na Mastodonu.

    Ladislav Hagara | Komentářů: 33
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (22%)
     (15%)
     (24%)
     (16%)
     (18%)
    Celkem 450 hlasů
     Komentářů: 18, poslední 2.12. 18:34
    Rozcestník

    Dotaz: strncpy přidává '\031' – bug v glibc?

    stativ avatar 27.12.2009 11:29 stativ | skóre: 54 | blog: SlaNé roury
    strncpy přidává '\031' – bug v glibc?
    Přečteno: 472×
    Právě jsem narazil na prapodivný problém, kdy mi v jednom konkrétním případě strncpy přidává znak '\031' (end of medium?) na konec řetězce.

    Dělá mi to na desktopu s Archem (32 bit) – jak s gcc 4.4.2 tak s clang 2.6, tudíž předpokládám, že pokud bug není u mě tak bude nejspíš v glibc (2.11.1). Když jsem to ale zkoušel na mašině s OpenSuSE (64bit) tak to jelo správně.

    Ukázka kódu, který blbne:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main() {
        char *test = "x^3 + (-x)^5";
        /*char *test = "sin(123 + 45 * ln(27 - 6))";*/
        char *str = malloc(strlen(test) * sizeof(char));
    
        strncpy(str, test, strlen(test));
    
        printf("%s\n",str);
    }
    
    Čekal bych, že na výstupu bude: x^3 + (-x)^5

    ale já dostanu: x^3 + (-x)^5\031

    Zvláštní je, že s jiným řetězcem (např. tím zakomentovaným to funguje).

    Můj dotaz je – je bug u mě, nebo jinde?
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk

    Řešení dotazu:


    Odpovědi

    27.12.2009 11:40 0-58glfsdhesr
    Rozbalit Rozbalit vše Re: strncpy přidává '\031' – bug v glibc?
    "Prekladac automaticky pridava ke kazde konstatne typu *char znak \0, aby funkce poznaly, kde konci" (volne podle K&R). Avsak strlen vraci delku bez \0 (man 3 strlen).

    V tomto pripade by mozna stalo za to pouzit funkci strdup, ale nekdy se hodi si pamet alokovat rucne.

    Doporucuju na ten kod spustit valgrind, ktery odhali chyby podobneho typu.
    stativ avatar 27.12.2009 11:49 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: strncpy přidává '\031' – bug v glibc?
    Jop, přesně tak. Ani mě nenapadlo, že bych mohl takovou chybu udělat (zvlášť, když jinde to mám správně).
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    stativ avatar 27.12.2009 11:46 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: strncpy přidává '\031' – bug v glibc?
    Safra, já zapomněl na plus jedna.
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    27.12.2009 16:48 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: strncpy přidává '\031' – bug v glibc?
    Měl byste se raději podívat na význam základních operátorů v C++, protože sizeof(test) vrátí délku celého pole, namísto volání strlen(test), násobení sizeof(char) a přičítání jedničky. Nejen, že použití sizeof(test) je elegantnější, ale narozdíl od Vámi prezentovaného řešení má konstatní složitost (strlen(test) má lineární složitost!).
    Pochybnost, nejistota - základ poznání
    AraxoN avatar 27.12.2009 17:59 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: strncpy přidává '\031' – bug v glibc?
    Neviem ako v C++, ale v C sizeof(test) vráti veľkosť dátového typu "smerník".
    27.12.2009 18:25 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: strncpy přidává '\031' – bug v glibc?
    protože sizeof(test) vrátí délku celého pole
    Jenže zde jde o pointer! Velikost celého pole může sizeof vrátit pouze pokud jde o pole v době deklarace. Prostě:
    int a[10];
    int *pa = a;
    // sizeof(a) = 10*sizeof(int) != sizeof(pa) = sizeof(void *)
    
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    stativ avatar 27.12.2009 19:15 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: strncpy přidává '\031' – bug v glibc?
    To je pěkný, ale je to pointer. Navíc sizeof vrací alokovanou paměť, ne tu, která je řetězcem reálně obsazená.
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk

    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.