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 12:22 | Komunita

    Na YouTube lze zhlédnout Godot Engine – 2025 Showreel s ukázkami toho nejlepšího letos vytvořeného v multiplatformním open source herním enginu Godot.

    Ladislav Hagara | Komentářů: 0
    dnes 10:00 | Humor

    Blíží se konec roku a tím i všemožná vyhlášení slov roku 2025. Dle Collins English Dictionary je slovem roku vibe coding, dle Dictionary.com je to 6-7, …

    Ladislav Hagara | Komentářů: 3
    dnes 09:55 | IT novinky

    Cloudflare Radar: podíl Linuxu na desktopu dosáhl v listopadu 6,2 %.

    Ladislav Hagara | Komentářů: 2
    včera 19:22 | 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 doražte na listopadovou 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. Mezi nejvýznamnější novinky patří Průšovo oznámení Core One L, zavedení RFID na filamentech, tisk silikonu nebo nový slicer. Dozvíte se ale i

    … více »
    bkralik | Komentářů: 3
    včera 05:00 | Nová verze

    Vývojáři OpenMW (Wikipedie) oznámili vydání verze 0.50.0 této svobodné implementace enginu pro hru The Elder Scrolls III: Morrowind. Přehled novinek i s náhledy obrazovek v oznámení o vydání.

    Ladislav Hagara | Komentářů: 0
    8.11. 23:11 | Zajímavý software

    Komunita kolem Linux Containers po roce vývoje představila (YouTube) neměnný operační systém IncusOS speciálně navržený pro běh Incusu, tj. komunitního forku nástroje pro správu kontejnerů LXD. IncusOS poskytuje atomické aktualizace prostřednictvím mechanismu A/B aktualizací s využitím samostatných oddílů a vynucuje zabezpečení bootování pomocí UEFI Secure Bootu a modulu TPM 2.0. Postaven je na Debianu 13.

    Ladislav Hagara | Komentářů: 17
    8.11. 22:44 | IT novinky

    Mozilla začne od ledna poskytovat komerční podporu Firefoxu pro firmy. Jedná se o podporu nad rámec stávající podpory, která je k dispozici pro všechny zdarma.

    Ladislav Hagara | Komentářů: 0
    8.11. 03:44 | Komunita

    V Bolzanu probíhá konference SFSCON (South Tyrol Free Software Conference). Jean-Baptiste Kempf, zakladatel a prezident VideoLAN a klíčový vývojář VLC media playeru, byl na ní oceněn cenou European SFS Award 2025 udělovanou Free Software Foundation Europe (FSFE) a Linux User Group Bolzano‑Bozen (LUGBZ).

    Ladislav Hagara | Komentářů: 3
    8.11. 02:44 | Zajímavý projekt

    Open-source minimalistický trackball Ploopy Nano byl po modelech modelech Classic a Thumb Trackball také aktualizován. Nová verze Nano 2 používá optický senzor PAW3222 a k původně beztlačítkovému designu přidává jedno tlačítko, které ve výchozí konfiguraci firmwaru QMK přepíná režim posouvání koulí. Sestavený trackball nyní vyjde na 60 kanadských dolarů (bez dopravy a DPH).

    |🇵🇸 | Komentářů: 4
    7.11. 14:22 | Zajímavý článek

    Github publikoval Octoverse 2025 (YouTube), tj. každoroční přehled o stavu open source a veřejných softwarových projektů na GitHubu. Každou sekundu se připojil více než jeden nový vývojář. Nejpoužívanějším programovacím jazykem se stal TypeScript.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (47%)
     (18%)
     (17%)
     (22%)
     (15%)
     (22%)
     (15%)
     (15%)
    Celkem 337 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    Rozcestník

    Dotaz: C, fscanf() a špatně načtená data

    unknown_ avatar 24.1.2009 13:52 unknown_ | skóre: 30 | blog: blog
    C, fscanf() a špatně načtená data
    Přečteno: 722×
    Ahoj. Mám problém s funkcí fscanf(). Josef Kufner mi (tady) poradil použít |%[^|]|%[^|]. Tak jsem to použil, a funguje to, ale první část řetězce se vždycky načte ještě navíc k poslední části řetězce předchozího. Neví pls někdo co s tím? Pochopitelně to háže segmentation fault, protože je to pak moc velký.

    Kód je tady:
     13   for(pom_for=0;pom_for<x;pom_for++)
     14   {
     15     fscanf(todosoubor,"|%[^|]|%[^|]|%[^|]|%[^|]|%[^|]|\n", &vypiss[pom_for].dulezitost, &vypiss[pom_for].dokdy, &vypiss[pom_for].nadpis, &vypiss[pom_for].popis, &vypiss[pom_for].ID_ulohy);
     16   }
    
    Obsah souboru ze kterýho se čte je tady:
    |**|sdf|sdf|sdf|01|
    |**|sdf|sdf|sdf|02|
    |**|sdf|sdf|sdf|03|
    |*|sdf|sdf|sdf|04|
    |***|asf|sadf|sdf|05|
    
    A co z toho vyleze, je tady:
    |** | sdf        | sdf                   | sdf                            |01**|
    |** | sdf        | sdf                   | sdf                            |02**|
    |** | sdf        | sdf                   | sdf                            |03*|
    |*  | sdf        | sdf                   | sdf                            |04***|
    |***| asf        | sadf                  | sdf                            |05|
    
    Všem předem moc děkuji, Milan

    Odpovědi

    24.1.2009 16:42 depka | skóre: 20 | blog: eterity
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    a dival ses v debugeru jestli je blbe nacte fscanf(), nebo je chyba nekde jinde?
    unknown_ avatar 24.1.2009 16:58 unknown_ | skóre: 30 | blog: blog
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    Jo, je to problem u fscanf().
    Fuky avatar 24.1.2009 18:44 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    Ne, problém je u Tebe, funkce fscanf() pracuje správně. Chyba je podle mě v tom, že velikost proměné ID_ulohy máš nastavenou na dva znaky, ovšem to je špatně, zapomněl jsi na místo pro znak, který ukončuje řetězce '\0', takže se Ti tento znak uloží na první pozici pole dulezitost, tato pozice následuje hned za poslední pozicí ID_ulohy. Jinak příště až budeš něco ladit, tak problém rozlož na co nejmenší části, za které dáš ruku do ohně, teprve pak si můžeš být jistý, že není chyba u Tebe. ;-)
    unknown_ avatar 24.1.2009 19:23 unknown_ | skóre: 30 | blog: blog
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    Jasneze problem je u me :-D. Ale dotaz sem spis pochopil jako: "v jake casti kodu je problem (kdy haze chybu)", a to je u fscanf().
    unknown_ avatar 24.1.2009 19:25 unknown_ | skóre: 30 | blog: blog
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    zapomněl jsi na místo pro znak, který ukončuje řetězce '\0'
    To bude ono, diky :-). Puvodne totiz ID_ulohy bylo int, a tam \0 nehrozi. Ale pak sem to z duvodu jednodussiho psani predelal na char.
    24.1.2009 18:44 Majkls
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    Teda nechci moc poučovat, ale ten kód je dost fuj. Osobně bych vzal soubor nebo část, načet do bufferu a zakončil NUL a pak prošel na | a LF, nahradil vždy NUL a dal pointer+1 do příslušné struktury. Je to dle mého názoru nejrychlejší a hlavně nehrozí segfaulty. Protože jinak nikdy nevíš dopředu velikost. A přeteklý buffer, jak známo milý Whatsone, bývá jedna z nejčastějších bezpečnostních děr C programů.
    Není umění napsat 10000 řádků, ale napsat na 10 řádků, co by jiný psal na 1000 řádků.
    unknown_ avatar 24.1.2009 19:29 unknown_ | skóre: 30 | blog: blog
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    Teda nechci moc poučovat, ale ten kód je dost fuj.
    Je to jenom maturitni projekt :-D. Ne, ted vazne - kdybys videl, co maj ti ostatni... Coz samozrejme neomlouva ledabylost.
    Osobně bych vzal soubor nebo část, načet do bufferu a zakončil NUL a pak prošel na | a LF, nahradil vždy NUL a dal pointer+1 do příslušné struktury. Je to dle mého názoru nejrychlejší a hlavně nehrozí segfaulty.
    Tak to planuju udelat, ale rikal sem si, ze "casu dost". Potrebuju nejprv dodelat este neco jinyho.
    Protože jinak nikdy nevíš dopředu velikost.
    V pripade, ze user nezasahne do souboru, tak vim. A pokud zasahne? Stejne tak muze zasahnout do pameti a "poto" jakejkoli program, ne?
    27.1.2009 14:55 Majkls
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    velikost řetězce.... ne souboru. scanf ti to hodí do "nějakýho" bufferu ale už nehlídá jeho velikost.
    Není umění napsat 10000 řádků, ale napsat na 10 řádků, co by jiný psal na 1000 řádků.
    unknown_ avatar 27.1.2009 21:44 unknown_ | skóre: 30 | blog: blog
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data
    Neuklada se vic, nez se dokaze precist.
    28.1.2009 13:20 karel
    Rozbalit Rozbalit vše Re: C, fscanf() a špatně načtená data

    User muze sahnout do pameti? Jednak je to nesmysl, jednak s takovouhle argumentaci by ses taky mohl vykaslat na jakoukoliv kontrolu cehokoliv.

    Co kdyz ten soubor pomrsi kvuli chybe tvoje vlastni aplikace? Segfault je jeste v tomto pripade nejlepsi konec, ale co kdyz k nemu nedojde a poskodi se data v pameti vlastnene programem? scanf je v tomto smyslu velice nebezpecna funkce a jeji pouziti je treba si dobre rozmyslet.

    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.