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 06:00 | Nová verze

Po necelém roce od vydání verze 0.67 byla vydána verze 0.68 populárního telnet a ssh klienta PuTTY. Podrobnosti v přehledu změn. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 0
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 4
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 10
20.2. 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
20.2. 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 33
20.2. 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 24
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (71%)
 (3%)
 (10%)
Celkem 680 hlasů
 Komentářů: 63, poslední dnes 11:29
Rozcestník

Dotaz: C - práce se soubory

17.11.2015 18:30 Bartiksson
C - práce se soubory
Přečteno: 353×
Zdravím, už se dlouhou dobu snažím dopídit, proč mi to ve finále vypíše nesmyslnou hodnotu (-******). Proměnná delka má hodnotu 10. A vlastně by to tu 10ku mělo vypsat. http://pastebin.com/xNJmzQDa Děkuji mockrát za jakoukoliv radu

Řešení dotazu:


Odpovědi

17.11.2015 18:35 lertimir | skóre: 59 | blog: Par_slov
Rozbalit Rozbalit vše Re: C - práce se soubory
No já vidím že proměnná delka má hodnotu N a co je N ve výpisu není.
Řešení 2× (johniez, Michal Kubeček)
17.11.2015 18:50 Radek
Rozbalit Rozbalit vše Re: C - práce se soubory
skus pred fread() posunout ukazatel na zacatek souboru pomoci prikazu fseek(f, 0L, SEEK_SET);

podle me se snažíš číst na konci souboru.
17.11.2015 21:44 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: C - práce se soubory

Odpověď na otázku už tu sice byla, ale některé další hrůzy mi nedají:

        f = fopen("data.bin", "wb+");
        if (errno !=0){

Funkce fopen() signalizuje chybu tím, že vrátí nulový pointer, takže to je to, co byste měl testovat. Testovat chybu knihovní funkce porovnáním errno na nulu je hrubá chyba; v případě úspěchu totiž není garantováno, že errno bude nula, pouze při chybě máte jistotu, že errno bude obsahovat odpovídající kód.

        pole = (int*)calloc(delka, sizeof(int));
...
        fwrite(&delka, sizeof(delka),1, f);
...
        fread(&vypis, sizeof(vypis), 1, f);

Tyhle funkce selhat nemohou? Zejména chybějící kontrola u alokace paměti je vděčným zdrojem bezpečnostních chyb. A kdybyste zkontroloval návratovou hodnotu fread(), hned byste viděl, že je něco špatně, a neřešil byste obsah proměnné vypis.

A konečně: na rozumný (a hlavně konzistentní) coding style je lepší si zvykat hned od začátku, když si jednou zvyknete pokaždé psát, jak vás zrovna napadne, později už se to těžko přeučuje.

18.11.2015 18:29 tom
Rozbalit Rozbalit vše Re: C - práce se soubory
Tyhle funkce selhat nemohou? Zejména chybějící kontrola u alokace paměti je vděčným zdrojem bezpečnostních chyb.
Vazne? Skoro kazdej system ma neomezene "overcommit memory", takze alokace neselze a navic system nemapuje stranku, kde se nachazi NULL, takze pri pristupu program umre na SIGSEGV. Dost pochybuju, ze todle je casta bezpecnostni chyba.
18.11.2015 19:49 johniez | skóre: 17 | blog: xyz | Praha
Rozbalit Rozbalit vše Re: C - práce se soubory
"Skoro kazdej" - takze se na to neda spolehnout :-)

Po alokaci se nemusi dereferencovat primo ta adresa, ale muze se pristupovat az nekam dal (pole), takze ten sigsegv taky neni uplna jistota.
18.11.2015 19:52 Radek
Rozbalit Rozbalit vše Re: C - práce se soubory
je videt ze o tom nic nevis. Opravdu jsou to bezpečnostní hrozby. Jednak nemas nikde garantovano, že operační systém ti tu paměť přidělí. a nebo že daný soubor otevře. To že to funguje 99% procentech neznamená, že to nemůže selhat. Navíc některé systémy nemusí mít paměťovou ochranu (zejména vestavěná zařízení). Pak by jsi v klidu přistupoval na adresu jinych procesů a měnil jim hodnoty. Pokud k hodnotě NULL přičtu dostatečně vysokou hodnotu, pak se mohu klidně dostat do svého adresového prostoru a měnit si náhodně proměné. => Tedy přístup na hodnotu NULL má nedefinované chování.
18.11.2015 20:04 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: C - práce se soubory
Skoro kazdej system ma neomezene "overcommit memory"

Z jakého zdroje vycházíte? Pár jsem jich zkusil a všechny měly vm.overcommit_memory nastavený na nulu,aniž bych to tak nastavoval, tj. distribuční default. Podle dokumentace je to i upstreamový default. Ale nepředstírám, že těch pár je statisticky významný vzorek, jak je na tom váš vzorek, ze kterého vycházíte?

system nemapuje stranku, kde se nachazi NULL

Třeba na S/390-64 nulový pointer dereferencovat jde.

takze pri pristupu program umre na SIGSEGV

Bezpečnostní chyba se může projevovat i jako DoS.

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.