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 01:55 | IT novinky

    Byli vyhlášeni vítězové ocenění Steam Awards 2025. Hrou roku a současně nejlepší hrou, která vám nejde, je Hollow Knight: Silksong.

    Ladislav Hagara | Komentářů: 0
    včera 21:11 | Nová verze

    Byla vydána nová verze 26.0 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Anh-Linh. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.

    Ladislav Hagara | Komentářů: 0
    3.1. 20:22 | Humor Ladislav Hagara | Komentářů: 23
    3.1. 19:11 | Zajímavý software

    Byl představen webový prohlížeč Brow6el, běžící v terminálu. Pro prohlížení webu je využit Chromium Embedded Framework, vyrendrovaná webová stránka je následně zobrazena v terminálu převodem na sixely pomocí knihovny libsixel. Brow6el se ovládá modálním klávesnicovým rozhraním, inspirovaném populárním textovým editorem Vim. Demonstrační video s ukázkou používání.

    NUKE GAZA! 🎆 | Komentářů: 1
    2.1. 23:00 | IT novinky

    Společnost Pebble představila (YouTube) chytré hodinky Pebble Round 2. S kulatým e-paper displejem, s open source PebbleOS a vydrží baterie přibližně dva týdny. Předobjednat je lze za 199 dolarů s plánovaným dodáním v květnu.

    Ladislav Hagara | Komentářů: 7
    2.1. 14:22 | Humor

    Na novoroční inauguraci starosty New Yorku Zohrana Mamdaniho bylo zakázáno si s sebou přinést Raspberry Pi anebo Flipper Zero. Raspberry Pi i Flipper Zero jsou explicitně uvedeny v seznamu zakázaných věcí jak na na veřejné pozvánce, tak i na oficiálních stránkách města.

    NUKE GAZA! 🎆 | Komentářů: 53
    2.1. 11:33 | Nová verze

    OpenTTD (Wikipedie), tj. open source klon počítačové hry Transport Tycoon Deluxe, byl vydán v nové stabilní verzi 15.0. Přehled novinek v seznamu změn a také na YouTube. OpenTTD lze instalovat také ze Steamu.

    Ladislav Hagara | Komentářů: 4
    2.1. 11:11 | Nová verze

    Správce oken IceWM byl vydán ve verzi 4.0.0, která např. vylepšuje navigaci v přepínání velkého množství otevřených oken.

    |🇵🇸 | Komentářů: 4
    2.1. 01:33 | Zajímavý projekt

    Od 1. ledna 2026 jsou všechny publikace ACM (Association for Computing Machinery) a související materiály přístupné v její digitální knihovně. V rámci této změny je nyní digitální knihovna ACM nabízena ve dvou verzích: v základní verzi zdarma, která poskytuje otevřený přístup ke všem publikovaným výzkumům ACM, a v prémiové zpoplatněné verzi, která nabízí další služby a nástroje 'určené pro hlubší analýzu, objevování a organizační využití'.

    NUKE GAZA! 🎆 | Komentářů: 5
    1.1. 16:44 | IT novinky

    S koncem roku 2025 skončila standardní podpora operačního systému HP-UX (Hewlett Packard Unix).

    Ladislav Hagara | Komentářů: 10
    Které desktopové prostředí na Linuxu používáte?
     (1%)
     (5%)
     (1%)
     (13%)
     (35%)
     (8%)
     (8%)
     (6%)
     (14%)
     (33%)
    Celkem 111 hlasů
     Komentářů: 3, poslední včera 16:22
    Rozcestník

    Zvrhlé hříčky s knihovnami pro céčko

    29.9.2006 16:33 | Přečteno: 2221× | IT | poslední úprava: 29.9.2006 18:15

    Dnes jsem absolvoval již druhou přednášku jednoho z velice zajímavých předmětů na FI MUNI aneb "Unix – programování a správa systému". Je to jeden z předmětů, kde se člověk konečně dozví nějaké praktické detaily (o programovování pod UNIXem...) a ne jen obecné teoretické blafy nebo IMHO věci, které by měly být náplní středoškolské informatiky. Dnes jsme věnovali část přednášky knihovnám a po zjištění, že pomocí LD_PRELOAD lze programům podstrčit "poupravené" funkce, jsem se vrhl na přepisování printf a scanf :-).

    LD_PRELOAD je proměnná shellu, do které lze umístit název knihovny, která má být dynamicky přilinkovaná jako první ke spuštěnému programu. Co to v praxi znamená? Že pokud knihovna obsahuje nějaké funkce, které jsou v jiné dynamicky načítané knihovně, pak budou tyto "odstíněny" naší novou verzí... Řekl jsem si, že většina programů se mnou nekomunikuje dostatečně přívětivě a tak jsem si zkusil napsat printf a scanf tak, aby byl ke mně počítač milejší ;-). Postup je jednoduchý. Nejdříve napíšeme zdroják s nově definovanými funkcemi. Třeba libhell.c:

    #include <stdio.h>
    #include <stdarg.h>
    
    int printf(const char *format, ...) {
       va_list args;
    
       va_start(args, format);
       vfprintf(stdout, "[Hello my boss!] :-) ", NULL);
       vfprintf(stdout, format, args);
       va_end(args);
       return vfprintf(stdout, "(-: [You're the best user!]\n", NULL);
    }
    
    int scanf(const char *fmt, ...)
    {
       int rc;
       va_list args;
    
       va_start(args, fmt);
    
       vfprintf(stdout, "(?) ;-) [Tell me something nice, my darling.]: ", NULL);
       rc = vfscanf(stdin, fmt, args);
       vfprintf(stdout, "    :-O [Thank you, boss!]\n", NULL);
    
       va_end(args);
    
       return rc;
    }
    

    To bychom měli to podstatné. Teď to ještě zkompilovat a nainstalovat. To uděláme s pomocí libtool: libtool --mode=compile gcc -g -O -c libhell.c; libtool --mode=link gcc -g -O -o libhell.la libhell.lo -rpath /usr/local/lib. Tak, knihovna je zkompilovaná a slinkovaná, takže ji už jen nakopírujeme do /usr/local/lib: cp libhell.la .libs/libhell.so* /usr/local/lib/.

    Naše nová a uživatelsky přívětivější ;-) implementace funkcí printf a scanf je na světě (dokonce i v našem počítači), ale ještě jsme ji nepodstrčili žádnému programu. Nicméně není to nic těžkého. Bashi řekneme export LD_PRELOAD="/usr/local/lib/libhell.so" a schválně si zkuste spustit "hello world" nebo jiný program, který používá přepsané funkce... Já jsem se nejvíc nasmál, když jsem provedl změny v libhell.c, spustil libtool a ten mi místo příkazů, které spouští, vypisoval jen "Burn in hell!" – to byla původní implementace :-D.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    29.9.2006 16:52 12345 | skóre: 41 | blog:
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Pěkné :-)

    Nemělo by místo „Say me something…“ být „Tell me something…“ ?
    29.9.2006 17:07 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Jojo … :-) Ale tomuhle příkladu teda říkám „zvrhlost“… :-D Myslím, že se najde hromada užitečnějších využití, třeba mnou kdysi zmíněná knihovna libtrash a podobně. :-)
    29.9.2006 18:05 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Tohle je ještě pitomější použití než to které tam bylo uvedeno jako příklad :-)
    Copak toho není dost?
    29.9.2006 18:10 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Tsss!!! :-D
    29.9.2006 18:12 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Myslel jsem to v tomhle blogu oproti tomu v přednášce. Koš je právě užitečné použití :-)
    Copak toho není dost?
    29.9.2006 18:21 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    To mi lichotí :-D.

    Jinak s tím "Tell me...": aspoň vidíte, proč jsem dostal za vstupní text z angliny jen 17 bodů z 50 ;-). Díky za korekci :-)
    θηριον ειμι
    29.9.2006 18:29 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    No já dostal takřka dvakrát tolik a taky bych tam dal Tell me, tak nevím.
    Copak toho není dost?
    29.9.2006 19:21 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    ;-) Ale ono tam má být "Tell me". Já tam měl původně "Say me" a pak jsem to opravil ;-). Holt se musím ještě hodně učit :-D
    θηριον ειμι
    29.9.2006 19:25 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Aha. Nějak mi dneska není vůbec dobře, tak mi to asi myslí ještě hůř než normálně.
    Copak toho není dost?
    29.9.2006 19:27 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Což o to, ono to nemusí být vyloženě špatně … :-) Viz třeba tohle:
    A: „Say me something.“

    B: „As you wish: Me something.“
    :-D :-D
    29.9.2006 19:40 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    No vida! Takže jsem to měl vlastně úplně správně a vy jste mě jen zmátli :-D :-D :-D
    θηριον ειμι
    29.9.2006 17:05 MaV | skóre: 6 | Brno
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Tak to jsme se museli na přednášce potkat :-)
    S tim, že je to hodně zajímavej předmět souhlasím, hlavně se už ale těším na druhou část, která se bude věnovat víc správě systému.
    Ale takhle si hrát s LD_PRELINK by mě fakt nenapadlo ;-)
    29.9.2006 17:07 MaV | skóre: 6 | Brno
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Samozřejmě jsem myslel LD_PRELOAD
    29.9.2006 17:12 k3 | skóre: 15 | blog:  
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    takovehle veci se obcas pouzivaji u re :)
    29.9.2006 18:19 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Tak to jsme se museli na přednášce potkat :-)
    JJ, byl jsem překvapen, že nás tam bylo dneska (vzhledem ke včerejšímu státnímu svátku a zítřejšímu výkendu) tolik :-D. Asi to poukazuje nejen na fakt, že nejsou dostupné videozáznamy, jak říkal pan Kasprzak :-D

    Jinak já si s tím hrál, protože jsem čekal, až se mi provede dist-upgrade mého slackware ;-)
    θηριον ειμι
    Zdenek.Z avatar 29.9.2006 17:18 Zdenek.Z | skóre: 14
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Jen bych si dovolil malou poznámku:
    :%s/\(#include \)\(.*\)/\1<\2>/
    A UNIXpass byl dobrý předmět. Bohužel jsem si z časových důvodů loni nemohl zapsat dvojku, ale už se těším na příští semestr.
    29.9.2006 18:15 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Ej karamba -- řvalo to na mně, že tam mám blbej "tag", tak jsem ty závorky umazal a zapomněl doplnit entity... Dikec ;-)
    θηριον ειμι
    30.9.2006 15:13 ondracch | skóre: 19 | blog: Mozková kreč
    Rozbalit Rozbalit vše Re: Zvrhlé hříčky s knihovnami pro céčko
    Konečně blog o něčem. Jen tak dál.
    Proč myslíš, že nemůžeš žít jinak? Pořád Tvořím...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.