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 21:00 | IT novinky

    Zemřel průkopník videoherní hudby Bobby Prince (Wikipedie). Složil hudbu pro hry Wolfenstein 3D, Doom, Doom II, Duke Nukem II a Duke Nukem 3D.

    Ladislav Hagara | Komentářů: 2
    dnes 15:55 | IT novinky

    Počítačová hra Operace Flashpoint (Arma: Cold War Assault) od společnosti Bohemia Interactive slaví 25 let. Při této příležitosti bylo publikováno bezplatné hratelné Arma: Cold War Assault Remastered Demo a na GitHubu byly zveřejněny zdrojové kódy.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | IT novinky

    Na trh v České republice přichází HP EliteBoard G1a. Jde o plnohodnotný AI počítač integrovaný přímo do těla klávesnice, tedy zařízení, které na první pohled vypadá jako minimalistická klávesnice, ale ve skutečnosti nahrazuje klasickou počítačovou jednotku.

    Ladislav Hagara | Komentářů: 12
    dnes 10:55 | Nová verze

    V lednu bylo oznámeno, že desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. O víkendu byla vydána první preview verze.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Nová verze

    Minulý týden byl oficiálně vydán Android 17. Detaily na blogu a stránkách věnovaných vývojářům.

    Ladislav Hagara | Komentářů: 5
    včera 20:00 | IT novinky

    Dnes jde do prodeje zařízení Steam Machine. Steam Machine 512 GB za 1 039 EUR a Steam Machine 2 TB za 1 359 EUR. Do čtvrtka 25. června do 19:00 se lze zapsat na seznamy. Ty budou jednorázově náhodně slosovány, čímž bude určeno pořadí rezervací a čekacích listin.

    Ladislav Hagara | Komentářů: 16
    včera 14:44 | Nová verze

    Vývojáři OpenMW (Wikipedie) oznámili vydání verze 0.51.0 této svobodné implementace enginu pro hru The Elder Scrolls III: Morrowind. Přehled novinek v oznámení o vydání a také na YouTube a PeerTube.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | Nová verze

    Byla vydána nová verze 2026.3.0 "Carousels & Killer Whales" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | IT novinky

    Tento týden (24. a 27. června) vyprší platnost Microsoft certifikátu v UEFI vydaných v roce 2011. Nové certifikáty byly vydány v roce 2023. Kdo na počítačích, i virtuálních, používá zabezpečené spouštění (Secure Boot), měl by si ověřit, že má certifikáty aktualizovány, viz např. články na Red Hat nebo Fedora. Pro stávající systémy se nic nemění. Nadále se budou normálně spouštět. Zavaděče podepsané pouze klíčem z 2023 se ale na počítačích s pouze certifikátem 2011 nespustí. Ve Fedoře je zavaděč shim ve verzi 16.1-6 podepsán klíči 2011 i 2023.

    Ladislav Hagara | Komentářů: 7
    21.6. 19:55 | Zajímavý software

    Uživatelé mobilních telefonů s Linuxem si nyní mohou nainstalovat aplikaci Mobilní Datovka. Díky tomu je přístup k datovým schránkám dostupný i na zařízeních s mobilními linuxovými distribucemi, jako jsou například Mobian, NixOS Mobile, pmOS atd. Aplikace je dostupná na Flathubu.

    David Heidelberg | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (2%)
     (16%)
     (26%)
    Celkem 1972 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    5.12.2021 09:40 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: casting pointerů v cečku
    Nenačítáte si tam data přímo ze souboru? Pokud ano (tj. v poli je totéž co v souboru), zvažte použití mmap(3), se kterým se budou data ze souboru číst až při přístupu. Jem ožné to nastavit tak, že se data do souboru propisují, paměť je jen pro čtení, nebo je možné paměť zapisovat beze změny souboru.

    Preferuji přístup s dlouhou jednorozměrnou nudlí, protože se nemusí mnhohokrát volat malloc a namísto 4 přístupů do paměti postačí jeden.

    Ukázka:
    #include <math.h>
    #include <stdbool.h>
    #include <stdint.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    struct hypercube_entry
    {
    	uint32_t value;
    };
    
    struct hypercube
    {
    	size_t z_len, y_len, x_len, w_len;
    	struct hypercube_entry entries[];
    };
    
    struct hypercube *
    hypercube_alloc(size_t z_len,
                    size_t y_len,
                    size_t x_len,
                    size_t w_len);
    
    inline static struct hypercube_entry *
    hypercube_entry(struct hypercube *hypercube,
                    size_t z_len,
                    size_t y_len,
                    size_t x_len,
                    size_t w_len);
    
    size_t
    hypercube_sizeof(size_t z_len,
                     size_t y_len,
                     size_t x_len,
                     size_t w_len);
    
    struct hypercube *
    hypercube_alloc(size_t z_len,
                    size_t y_len,
                    size_t x_len,
                    size_t w_len)
    {
    	struct hypercube *hypercube_mem;
    	size_t hypercube_sz;
    
    	hypercube_sz = hypercube_sizeof(z_len, y_len, x_len, w_len);
    	hypercube_mem = malloc(hypercube_sz);
    	if (hypercube_mem == NULL) {
    		fprintf(stderr,
                    "Cannot allocate %lu bytes for hypercube. Aborting.\n",
    		        hypercube_sz);
    	}
    	hypercube_mem->z_len = z_len;
    	hypercube_mem->y_len = y_len;
    	hypercube_mem->x_len = x_len;
    	hypercube_mem->w_len = w_len;
    }
    
    size_t
    hypercube_sizeof(size_t z_len,
                     size_t y_len,
                     size_t x_len,
                     size_t w_len)
    {
    	return sizeof(struct hypercube)
    	       + sizeof(struct hypercube_entry) * z_len * y_len * x_len * w_len;
    }
    
    inline static struct hypercube_entry *
    hypercube_entry(struct hypercube *hypercube,
                    size_t z,
                    size_t y,
                    size_t x,
                    size_t w)
    {
    	struct hypercube_entry *entry = hypercube->entries;
    	entry += z * hypercube->y_len * hypercube->x_len * hypercube->w_len;
    	entry += y * hypercube->x_len * hypercube->w_len;
    	entry += x * hypercube->w_len;
    	entry += w;
    	return entry;
    }
    
    int
    main(void)
    {
    	size_t z_len = 100;
    	size_t y_len = 99;
    	size_t x_len = 98;
    	size_t w_len = 97;
    	struct hypercube *hypercube;
    
    	hypercube = hypercube_alloc(z_len, w_len, y_len, x_len);
    	printf("Allocated %lu bytes\n.",
    	       hypercube_sizeof(z_len, w_len, y_len, x_len));
    
    	/* Draw 4-dimensional super-ellipsoid.
    	 * Quite inefficient algorithm. */
    	for (int x = 0; x < hypercube->x_len; x++)
    	for (int y = 0; y < hypercube->y_len; y++)
    	for (int z = 0; z < hypercube->z_len; z++)
    	for (int w = 0; w < hypercube->w_len; w++) {
    		bool is_inside = .5f >= (
    			powf(((float) x - 50.f) * .02, 4.f)
    			+ powf(((float) y - 50.f) * .02, 4.f)
    			+ powf(((float) z - 50.f) * .02, 4.f)
    			+ powf(((float) w - 50.f) * .02, 4.f));
    		hypercube_entry(hypercube, z, y, x, w)->value
    			= is_inside ? 1 : 0;
    	}
    
    	/* Draw slices of it. */
    	for (int w = 10; w < hypercube->w_len - 10; w += 10) {
    		printf("w = %i\n", w);
    		for (int y = 1; y < hypercube->y_len; y += 2) {
    			for (int x = 1; x < hypercube->x_len; x++) {
    				int z = 0;
    				for (;
    				     z < hypercube->z_len
    					 && !hypercube_entry(hypercube, z, y, x, w)->value;
    				     z++);
    				if (z < 80) {
    					if (hypercube_entry(hypercube, z, y - 1, x - 1, w)
    					    ->value) {
    						putchar('*');
    					} else {
    						putchar('#');
    					}
    				} else {
    					putchar('_');
    				}
    			}
    			putchar('\n');
    		}
    		putchar('\n');
    	}
    }
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.