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 11:33 | IT novinky

Red Hat kupuje společnost Codenvy stojící za stejnojmenným webovým (cloudovým) integrovaným vývojovým prostředím (WIDE) postaveném na Eclipse Che.

Ladislav Hagara | Komentářů: 0
dnes 08:55 | Nová verze

V listopadu 2014 byl představen fork Debianu bez systemd pojmenovaný Devuan. Po dva a půl roce jeho vývojáři oznámili vydání první stabilní verze 1.0. Jedná se o verzi s dlouhodobou podporou (LTS) a její kódové jméno je Jessie, podle planetky s katalogovým číslem 10 464.

Ladislav Hagara | Komentářů: 6
včera 20:22 | Zajímavý článek

Nadace Raspberry Pi vydala již osmapadesáté číslo (pdf) stostránkového anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači a druhé číslo (pdf) časopisu Hello World primárně určeného pro učitele informatiky a výpočetní techniky.

Ladislav Hagara | Komentářů: 0
včera 19:55 | Humor

Portál Stack Overflow informuje na svém blogu, že pomohl ukončit editor Vim už více než milionu vývojářů. V loňském roce například hledal odpověď na otázku Jak ukončit editor Vim v průměru 1 z 20 000 návštěvníků.

Ladislav Hagara | Komentářů: 10
včera 19:22 | Nová verze

Po pěti měsících od vydání verze 3.5.0 byla vydána nová stabilní verze 3.6.0, tj. první z nové řady 3.6, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie). Z novinek lze zmínit například podporu dvou nových 64bitových platforem little-endian POWER machines (ppc64le) a IBM z Systems (s390x) nebo nové balíčky Rust 1.17.0, Cargo 0.18.0, GHC 8.0.2 a Julia 0.5.2.

Ladislav Hagara | Komentářů: 0
24.5. 21:33 | Bezpečnostní upozornění

V Sambě byla nalezena a opravena bezpečnostní chyba CVE-2017-7494. Má-li útočník právo ukládat soubory na vzdálený server, může tam uložit připravenou sdílenou knihovnu a přinutit smbd server k jejímu načtení a tím pádem ke spuštění libovolných příkazů. Chyba je opravena v upstream verzích 4.6.4, 4.5.10 a 4.4.14. Chyba se týká všech verzí Samby od verze 3.5.0 vydané 1. března 2010.

Ladislav Hagara | Komentářů: 5
24.5. 20:44 | Nová verze

Byla vydána nová stabilní verze 4.3.0 integrovaného vývojového prostředí (IDE) Qt Creator. Z novinek lze zmínit například integraci editoru kódu do Qt Quick Designeru.

Ladislav Hagara | Komentářů: 1
24.5. 20:11 | Bezpečnostní upozornění

Společnost Check Point informuje na svém blogu o novém vektoru útoku. Pomocí titulků lze útočit na multimediální přehrávače VLC, Kodi, Popcorn Time, Stremio a pravděpodobně i další. Otevření útočníkem připraveného souboru s titulky v neaktualizovaném multimediálním přehrávači může vést ke spuštění libovolných příkazů pod právy uživatele. Ukázka na YouTube. Chyba je opravena v Kodi 17.2 nebo ve VLC 2.2.6.

Ladislav Hagara | Komentářů: 11
23.5. 15:18 | Zajímavý software

CrossOver, komerční produkt založený na Wine, je dnes (23. 5. 2017) dostupný ve slevě. Roční předplatné linuxové verze vyjde s kódem TWENTYONE na $21, resp. $1 v případě IP z chudších zemí. Firma CodeWeavers, která CrossOver vyvíjí, významně přispívá do Wine. Přidaná hodnota CrossOver spočívá v přívětivějším uživatelském rozhraní, integraci do desktopu a podpoře.

Fluttershy, yay! | Komentářů: 26
23.5. 15:11 | Zajímavý projekt

V únoru loňského roku bylo představeno několik útoků na celou řadu bezdrátových klávesnic a myší s názvem MouseJack. Po více než roce lze chybu opravit, tj. aktualizovat firmware, také z Linuxu. Richardu Hughesovi se podařilo navázat spolupráci se společností Logitech, získat od nich dokumentaci, přesvědčit je, aby firmware poskytovali přímo a ne jako součást .exe souboru, aby mohl být popis začleněn do služby Linux Vendor Firmware Service (LVFS) a aktualizace tak mohla proběhnou přímo z Linuxu pomocí projektu fwupd.

Ladislav Hagara | Komentářů: 2
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (32%)
 (1%)
 (8%)
 (44%)
 (9%)
Celkem 620 hlasů
 Komentářů: 62, poslední 19.5. 01:57
    Rozcestník

    Dotaz: C++ endian

    19.4.2011 22:45 martin
    C++ endian
    Přečteno: 377×
    Nazdar,

    dnes som sa zacal zaoberat s big endian a little endian. Opisal som program z knihy Profesionalne Linux programovani aplikaci a po skompilovani som dospel k tomu ze mam big endian. To by bolo aj fajn ked ako vystup mi hodilo toto:

    0xdeadbeef

    [0] = 0xffffffef [1] = 0xffffffbe [2] = 0xffffffad [3] = 0xffffffde

    Prikladam zdrojovy kod.

    Podla big endian by mal byt vystup skor [0] = 0xffffffde [1] = 0xffffffad [2] = 0xffffffbe [3] = 0xffffffef

    Viete mi niekto vysvetlit kde moze byt chyba? Alebo som ja zle pochopil endian ?

    Dakujem :)

    Řešení dotazu:


    Odpovědi

    19.4.2011 23:02 ghost
    Rozbalit Rozbalit vše Re: C++ endian
    "dospel k tomu ze mam big endian" Jak? Mas nejaky "exoticky" hw? Protoze treba procesory kompatibilni s Intel x86 jsou (aspon co je mi znamo) prave LE.
    19.4.2011 23:08 martin
    Rozbalit Rozbalit vše Re: C++ endian
    Konkretne mam CPU E8400 co je 64-bit. A tym padol by mal byt big endian. Lenze mne program vypisal vystup, ktory zodpoveda little endian. Preco ? :D
    19.4.2011 23:11 ghost
    Rozbalit Rozbalit vše Re: C++ endian
    rekl bych, ze problem je v samotne detekci. Ty mas: int little_endian(){ int endian = 1; return (0==((char*)&endian)); } A podle mne by melo byt: int little_endian(){ int endian = 1; return (0==(*(char*)&endian)); }
    19.4.2011 23:19 ghost
    Rozbalit Rozbalit vše Re: C++ endian
    1.Omlouvam se za formatovani.
    2.Snad me vetsi znalci C/C++ neukamenuji. Porovnani ((char*)&endian)) == 0 je spatne, protoze ty porovnavas int (hodnotu) s ukazatelem na char. Aby to bylo spravne, tak jej musis dereferencovat: (*(char*)&endian)) == 0
    20.4.2011 11:55 Sten
    Rozbalit Rozbalit vše Re: C++ endian
    Core 2 je x86-64, což je architektura založená na x86 a to je little endian. Bitovost procesoru nemá s endianitou nic společného.
    19.4.2011 23:16 martin
    Rozbalit Rozbalit vše Re: C++ endian
    Ahah, mas pravdu mam tam chybu ma to tak byt ako si napisal. No po skompilovani stale to iste, nic sa nezmenilo.
    19.4.2011 23:22 ghost
    Rozbalit Rozbalit vše Re: C++ endian
    musis ted porovnavat s 1, ptz jestli je LE, tak 1 bude prave na zacatku
    20.4.2011 00:45 Sten
    Rozbalit Rozbalit vše Re: C++ endian
    Nejjednodušší způsob, jak otestovat endianitu na Linuxu (pokud nechcete používat to makro):
    #include <arpa/inet.h>
    
    bool bigEndian = htons(0x1234) == 0x1234;
    Funkce htons převádí endianitu z místní na síťovou a síťová endianita je velká. Takže pokud je po převodu číslo nezměněné, počítá stroj ve velkém endiánu.

    Co se týče vašeho zdrojáku, má to být takto:
    return 1 ==(*reinterpret_cast<char*>(&endian));
    Když tam máte 0, testujete big endian, ne little endian (na little endian bude nejméně významný bajt první, což je ten, který obsahuje tu jedničku).

    Po přetypování to musíte dereferencovat (operátorem *), jinak porovnáváte ukazatel, ne hodnotu (a ten ukazatel nikdy nebude nullptr).

    A je to C++, tak raději používejte přetypování z C++.
    20.4.2011 17:15 ghost
    Rozbalit Rozbalit vše Re: C++ endian
    A je to C++, tak raději používejte přetypování z C++.
    V C/C++ nedelam, muzete mi osvetlit v cem se to ve vysledku lisi? Resp. proc je to vyhodnejsi? Jen co do cistoty kodu, ci to ma i jiny vyznam? Diky
    clayman avatar 20.4.2011 17:49 clayman | skóre: 13 | Praha 6
    Rozbalit Rozbalit vše Re: C++ endian
    Za Stena mluvit nemůžu, ale předpokládám, že hlavní výhoda tkví v tom, že používáte knihovní funkci, tzn. praxí ověřenou věc namísto vlastních krkolomných konstrukcí, které mohou být náchylné k chybám. :-)
    clayman avatar 20.4.2011 20:06 clayman | skóre: 13 | Praha 6
    Rozbalit Rozbalit vše Re: C++ endian
    Eh, jsem si měl pořádně přečíst tvůj citát... :-(
    20.4.2011 17:58 Sten
    Rozbalit Rozbalit vše Re: C++ endian
    Význam je hlavně v tom, že explicitně říkáte, co tím přetypováním chcete udělat, jestli chcete odstranit const (const_cast), přetypovat natvrdo (static_cast), dynamicky (dynamic_cast) anebo úplně změnit význam nějakého pointeru (reinterpret_cast) (případně si pak můžete nadefinovat i vlastní přetypovávání, např. v Boostu je hodně dobré lexical_cast, které překládá obsah proměnných), takže pokud tam uděláte chybu (třeba reinterpret_cast zároveň odstraní const), tak to překladač odmítne přeložit.

    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.