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 13:22 | IT novinky

    Společnost OpenAI, která stojí za chatovacím robotem s umělou inteligencí (AI) ChatGPT, získala od investorů 122 miliard USD (2,6 bilionu Kč). Hodnota společnosti tak dosáhla 852 miliard dolarů (více než 18 bilionů Kč). Nejnovější kolo investování se stalo největší, jaké zatím firma uskutečnila, a peníze mají posílit ambiciózní plány rozšíření výpočetní kapacity, datových center a nábor talentů.

    Ladislav Hagara | Komentářů: 1
    dnes 13:11 | IT novinky

    Nástroj k identifikaci občanů v on-line komunikaci s úřady byl dnes dopoledne zhruba dvě hodiny částečně nedostupný. Problém se objevil kolem 09:00 a podařilo se ho vyřešit kolem 11:00. Částečně nedostupná byla služba Národní identitní autority (NIA), problémy podle DIA (Digitální a informační agentura) ovlivňovaly přihlašování například i přes bankovní identitu. „Dostupnost NIA byla plně obnovena, přihlášení k digitálním službám

    … více »
    Ladislav Hagara | Komentářů: 1
    dnes 13:00 | IT novinky

    Eben Upton oznámil další zdražení počítačů Raspberry Pi kvůli růstu cen pamětí a představil Raspberry Pi 4 s 3 GB RAM za 83,75 dolarů.

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

    Anthropic patrně omylem zveřejnil celý zdrojový kód svého CLI nástroje Claude Code prostřednictvím přiloženého sourcemap souboru v npm balíčku. Únik odhalil doposud nijak nezveřejněné funkce jako je například režim v utajení, autonomní agent 'KAIROS', orchestrace multi‑agentů, režim snění nebo dokonce virtuální mazlíček Buddy. Zajímavostí je detekce naštvání uživatele pomocí obyčejného regexpu. Anthropic rychle odstranil sourcemap a vydal opravu, nicméně kopie kódu se již stihly na GitHubu rozšířit mezi prostým lidem.

    NUKE GAZA! 🎆 | Komentářů: 8
    včera 14:33 | Humor

    Copilot automaticky vkládal do pull requestů 'propagační tipy', reklamní text se na GitHubu objevil ve více než jedenácti tisících pull requestech. Po vlně kritiky byla tato funkce zablokována a produktový manažer Tim Rogers připustil, že umožnit Copilotovi upravovat cizí pull requesty bez vědomí autorů byla chyba.

    NUKE GAZA! 🎆 | Komentářů: 4
    včera 12:55 | Upozornění

    Je 31. března a tedy Světový den zálohování (World Backup Day). Co by se stalo, kdyby Vám právě teď odešel počítač, tablet nebo telefon, který používáte?

    Ladislav Hagara | Komentářů: 4
    včera 12:44 | Upozornění

    Digitální a informační agentura (DIA) přistupuje ke změně formátu důvěryhodného seznamu České republiky z verze TLv5 na verzi TLv6, která nastane 29. dubna 2026 v 00:00 (CET). Ke změně formátu důvěryhodných seznamů členských států (tzv. Trusted Lists) dochází na základě změn příslušné unijní legislativy. Důvěryhodné seznamy se používají v rámci informačních systémů a aplikací zejména pro účely ověřování platnosti elektronických

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 05:00 | Nová verze

    Rspamd (Wikipedie), tj. open source systému pro filtrování nevyžádané pošty, byl vydán v nové major verzi 4.0.0. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    30.3. 23:11 | Nová verze

    SolveSpace (Wikipedie), tj. multiplatformní open source parametrický 2D/3D CAD, byl vydán v nové verzi 3.2. Přehled novinek v Changelogu na GitHubu. Vyzkoušet lze novou oficiální webovou verzi.

    Ladislav Hagara | Komentářů: 10
    30.3. 18:22 | Pozvánky

    Organizátoři Dne IPv6, tradiční akce věnované tématům spojeným s tímto protokolem, vyhlásili Call for Abstracts. Na webu konference mohou zájemci přihlašovat příspěvky o délce 20 nebo 40 minut či 10minutové lighting talky a to až do 30. dubna. Tvůrci programu uvítají návrhy přednášek z akademického i komerčního sektoru, které mohou být technického i netechnického zaměření. Den IPv6 se letos uskuteční 4. června a místem konání bude i

    … více »
    VSladek | Komentářů: 12
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (5%)
     (1%)
     (14%)
     (23%)
    Celkem 1201 hlasů
     Komentářů: 29, poslední včera 11:17
    Rozcestník

    Dotaz: Chycení výjimky v C

    29.12.2015 20:41 Jardík
    Chycení výjimky v C
    Přečteno: 730×
    Zahrávám si s myšlenkou chytit např. C++ výjimku v C kódu. Chápu, že to nebude přenositelné. Četl jsem nějakou dokumentaci k libunwind a našel způsob, jak z C vyhodím výjimku (musím linkovat k libgcc nebo k libunwind). Taky má GCC attribut cleanup, který mi zavolá funkci, když nějaká C++ funkce (callback) vyhodí výjimku, taže bych uměl i uklidit. Mou z C vyhozenou výjimku (pomocí _Unwind_RaiseException) dokáže chytit C++ catch(...) blok. Zajímalo by mě ale, jestli jde nějak kompilátoru (GCC) říct, aby zavolal nějakou funkci či skočil na návěští, když callback vyhodí výjimku. Prostě jen tak ze zvědavosti. Zahrávám si s myšlenkou v blízké budoucnosti vytvořit překladač nespecifikovaného jazyka do C a chtěl bych tam mít i výjimky, aniž bych použil C++, ale chtěl bych, aby to volalo i C++ destruktory a dalo se to chytit v catch(...) bloku, zavolá-li mou funkci někdo z C++.
    // throwing_code.c
    
    #include <stdint.h>
    #include <stdio.h>
    
    typedef enum {
    	_URC_NO_REASON = 0,
    	_URC_FOREIGN_EXCEPTION_CAUGHT = 1,
    	_URC_FATAL_PHASE2_ERROR = 2,
    	_URC_FATAL_PHASE1_ERROR = 3,
    	_URC_NORMAL_STOP = 4,
    	_URC_END_OF_STACK = 5,
    	_URC_HANDLER_FOUND = 6,
    	_URC_INSTALL_CONTEXT = 7,
    	_URC_CONTINUE_UNWIND = 8
        } _Unwind_Reason_Code;
        
    typedef struct _Unwind_Exception _Unwind_Exception;
    
    typedef void (*_Unwind_Exception_Cleanup_Fn)
    		(_Unwind_Reason_Code reason, _Unwind_Exception *exc);
    
    struct _Unwind_Exception {
    	    uint64_t			 exception_class;
    	    _Unwind_Exception_Cleanup_Fn exception_cleanup;
    	    uint64_t			 private_1;
    	    uint64_t			 private_2;
        };
    
    
    extern _Unwind_Reason_Code
    _Unwind_RaiseException(_Unwind_Exception *e);
    
    
    void exception_cleanup(_Unwind_Reason_Code reason, _Unwind_Exception *e)
    {
    	printf("Exception cleanup, reason = %i, e = %p\n", (int)reason, (void*)e);
    }
    
    
    _Unwind_Exception e = {
    	((uint64_t)('J') << 56) | ((uint64_t)('A') << 48) | ((uint64_t)('R') << 40) |
    	((uint64_t)('D') << 32) | ((uint64_t)('I') << 24) | ((uint64_t)('K') << 16) |
    	((uint64_t)('\0') << 8) | ((uint64_t)('\0') << 0),
    	exception_cleanup,
    	0,
    	0
    };
    
    void throwing_code_throw()
    {
    	_Unwind_RaiseException(&e);
    }
    
    // catching_code.cpp
    
    #include <cstdio>
    
    extern "C" void throwing_code_throw();
    
    int main(int argc, char **argv)
    {
    	try {
    		throwing_code_throw();
    		printf("after exception\n");
    	}
    	catch (...) {
    		printf("caught exception\n");
    	}
    	return 0;
    }
    

    Odpovědi

    kozzi avatar 30.12.2015 17:53 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Chycení výjimky v C

    Zrovna na toto tema se nedavno vedla diskuze u jazyka D. A pokud vim tak se uz i nekam pokrocilo a v blizko dobe bude mozne v D chytat vyjimky z C++. Takze mozna se poptat nekoho z fora D.

    nejaka prace uz je i zaclenena ale nevim zda ti to bude uzitecne

    https://github.com/D-Programming-Language/dmd/pulls?utf8=✓&q=is%3Apr+author%3AWalterBright+

    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    31.12.2015 02:18 Jardík
    Rozbalit Rozbalit vše Re: Chycení výjimky v C
    Kouknu na to, díky.
    DaBler avatar 31.12.2015 09:26 DaBler | skóre: 17 | blog: dabler | Brno
    Rozbalit Rozbalit vše Re: Chycení výjimky v C

    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.