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 16:11 | Zajímavý software

    Strata je open-source inferenční engine, který umožňuje lokálně provozovat rozsáhlý čínský model Qwen3.8-Flash-Next, který by jinak nejspíše vyžadoval serverovou infrastrukturu, na běžném herním počítači s alespoň 12 GB VRAM, 32 GB RAM a dostatkem místa na SSD. Nároky na paměť a rychlost generování se liší s použitou variantou modelu Qwen. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.

    AfD 💙 | Komentářů: 2
    dnes 15:11 | Humor

    Americký prezident Donald Trump oznámil vznik federální Jednotky pro superinteligenci (Super Intelligence Force), která má koordinovat postup vlády, technologických firem, náboženských organizací a dalších institucí v oblasti rychle se rozvíjející umělé inteligence (Trumpem oficiálně nazývanou superinteligencí). SIF, podřízená přímo Trumpovi, má pomoci Spojeným státům udržet v oblasti SI technologický náskok nad světem a

    … více »
    AfD 💙 | Komentářů: 4
    dnes 13:11 | Zajímavý software

    Klient je e-mailový klient pro GNOME s nativní podporou Proton Mailu, PGP a spamfiltrem řízeným AI. Napsaný je v Go s GTK4 a libadwaita. Připojuje se přímo k Proton Mailu (bez Proton Bridge), ke Gmailu, k Seznam.cz a k libovolné schránce IMAP/SMTP. Každou novou zprávu nejdřív posoudí spamfiltr a teprve potom ji ukáže a ohlásí. Rozhraní je česky a anglicky.

    Ladislav Hagara | Komentářů: 5
    dnes 10:44 | Humor

    Hra Doom nově běží také v SQL databázi CedarDB. Představen byl SQLDoom. Vyzkoušet lze online demo. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Multiplatformní open source aplikace scrcpy (Wikipedie) pro zrcadlení připojeného zařízení se systémem Android na desktopu a umožňující ovládání tohoto zařízení z desktopu, byla vydána v nové verzi 5.0. S podporou hardwarového dekódování videa na desktopu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Nová verze

    Moderní linker mold, rychlejší alternativa k LLVM lld nebo wild, byl vydán v nové major verzi 3.0.0. Přepsán byl z C++ do Rustu.

    Ladislav Hagara | Komentářů: 3
    včera 20:22 | Nová verze

    Po osmi letech od vydání verze 2.0 byla vydána nová major verze 3.0 multiplatformního editoru tagů MusicBrainz Picard (Wikipedie). Přehled novinek, vylepšení a oprav v changelogu.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Komunita

    Mezinárodní federace hudebního průmyslu (International Federation of the Phonographic Industry) navrhla Evropské komisi zařazení populárního open-source nástroje yt-dlp na evropský seznam 'padělků a pirátství' (EU Counterfeit and Piracy Watch List) pro rok 2027 (plné znění žádosti IFPI). IFPI ve svém podání označuje tento aktivně vyvíjený a o rozličné funkce bohatší fork youtube-dl za 'závažný problém' pro hudební průmysl, v

    … více »
    AfD 💙 | Komentářů: 14
    včera 14:44 | Nová verze

    Byla vydána nová verze 7.4 linuxové distribuce Parrot OS (Wikipedie). Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 11:55 | Pozvánky

    Dnes startuje desátý ročník oblíbené kyberbezpečnostní soutěže The Catch organizované Forenzní laboratoří CESNETu. Letos zavede soutěžící do světa národních výzkumných a vzdělávacích sítí (NREN). Čekají na vás tematické úlohy založené na principu Capture the Flag (CTF), hledání ukrytých flagů i zajímavé ceny. Otestujte své schopnosti a vyrazte na lov flagů.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2804 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: C a dlsym

    5.11.2010 14:36 Jozef G
    C a dlsym
    Přečteno: 618×
    Mam nieco taketo:
    void *lib=0;
    lib=dlopen("./libeng.so.1.0.0", RTLD_LAZY);
    int (*hello)() = (int(*)()) dlsym(lib, "hello");
    hello();
    dlclose(lib);
    
    prekladam to: gcc -ldl -rdynamic -std=c99 -pedantic -Wall -o test ./main.c a dostanem warning: ISO C forbids conversion of object pointer to function pointer type.

    Neviete prosim, ci mam zle to pretypovanie alebo to proste ISO C zakazuje?

    Odpovědi

    Luboš Doležel (Doli) avatar 5.11.2010 15:15 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C a dlsym
    Ten problém je složitější, mrkni sem.
    5.11.2010 15:37 l4m4
    Rozbalit Rozbalit vše Re: C a dlsym
    C++ je paranoidní a netahal bych ho sem.

    Na POSIXovém systému je void* a ukazatel na funkci konvertovatelný. Program
    typedef int (*Foo)(int);
    int f(int x) { return x+1; }
    
    int
    main(void)
    {
        void *p = &f;
        Foo g = p;
    
        return 0;
    }
    
    je normálně přeložitelný (a funguje, pokud se g následně k něčemu použije).
    Luboš Doležel (Doli) avatar 5.11.2010 17:46 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C a dlsym
    Ehm, čtete pořádně. Tohle můžete v C++ udělat samozřejmě taky, stačí tam přidat cast. My tady řešíme to varování.
    8.11.2010 09:17 l4m4
    Rozbalit Rozbalit vše Re: C a dlsym
    Buď na dané platformě jsou pointery na funkce a void* zaměnitelné, tj. je to POSIX či něco jiného příčetného. (Máte snad systém, kde funguje dlsym() a pointery nejsou zaměnitelné?) Potom je příčina problému s varováním v tom, že od kompilátoru požadujete nesmyslné varování, takže to nedělejte.

    Nebo zaměnitelné nejsou, a pak váš problém není žáný warning, ale to že pointery nejsou zaměnitelné, a dlsym() takhle vůbec nejde použít, a nejspíš tam ani neexistuje.
    5.11.2010 16:09 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: C a dlsym
    Viz man dlsym :-).
    
               /* Writing: cosine = (double (*)(double)) dlsym(handle, "cos");
                  would seem more natural, but the C99 standard leaves
                  casting from "void *" to a function pointer undefined.
                  The assignment used below is the POSIX.1-2003 (Technical
                  Corrigendum 1) workaround; see the Rationale for the
                  POSIX specification of dlsym(). */
    
               *(void **) (&cosine) = dlsym(handle, "cos");
    
    
    Takze:
    
    int main(){
    	void *lib = NULL;
    	int (*hello)();
    	
       	lib = dlopen("./libeng.so.1.0.0", RTLD_LAZY); 
    	*(void**) (&hello) = dlsym(lib, "hello");
    	hello();
    	dlclose(lib);
    	return 0;
    }
    
    
    5.11.2010 16:55 Jozef G
    Rozbalit Rozbalit vše Re: C a dlsym
    Da sa nejak ludsky vysvetlit *(void**) (&hello)?
    mess avatar 5.11.2010 17:01 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
    Rozbalit Rozbalit vše Re: C a dlsym
    Z "hello" se uděla pointer (pomoci &), ten se následně castuje na void ** a nakonec se provede jeho dereference.
    Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
    5.11.2010 17:07 Jozef G
    Rozbalit Rozbalit vše Re: C a dlsym
    Cize mam funkciu, ktora vracia int. Hello je ukazatel na funkciu, ktora vracia int. &hello - vytvori ukazatel na ukazatel funkcie, ktora vracia int a ten je nasledne typecastnuty na ukazatel na ukazatel na void. Prva hviezdicka z toho spravi ukazatel na void.
    Luboš Doležel (Doli) avatar 5.11.2010 17:43 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C a dlsym
    Tohle mi dřív házelo varování kvůli strict aliasing rules.

    Založit nové vlákno • Nahoru

    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.