Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. 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.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
str zarovnaný.
#include <errno.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <string.h>
#include <stdio.h>
int main(void) {
int id = shmget(10789L, 10, IPC_CREAT | 0777);
char str[] = "abcdefghi";
char* addr = (char*) shmat(id, str, SHM_RND);
if ((long)addr == -1) {
printf("Error: %s\n", strerror(errno));
return 1;
}
return 0;
}
Přitom pokud nechci mapovat existující oblast paměti, ale novou oblast, kód funguje:
char* addr = (char*) shmat(id, 0, SHM_RND);Přiznávám se rovnou, že programování v C není zrovna moje hobby a do tohohle jsem se pustil jenom proto, že jsem doufal, že napsat těch 10 řádek nebude problém… Podle
man shmat by ten kód měl být IMHO vpořádku, asi přehlížím nějakou triviální chybu – dokáže mi někdo poradit, jak na to?
uname -a Linux 2.6.16-gentoo-r7 #2 PREEMPT Fri May 26 18:27:12 CEST 2006 i686 AMD Athlon(tm) XP 2600+ GNU/Linux ls -l /usr/lib/libglib.so lrwxrwxrwx 1 root root 21 Feb 3 2005 /usr/lib/libglib.so -> libglib-1.2.so.0.0.10Podotýkám, že potřebuji takto nasdílet již "existující" blok paměti. Výsledek má být zakomponován do JNI a Javy a potřebuji takhle komunikovat s již existujícím sw, který používá právě sdílenou paměť, takže jiný způsob IPC nemůžu použít.
str tímhle způsobem nasdílím. Že by v tom byl zakopaný hafan?
Ona adresa, kam se bude sdílená paměť mapovat, tedy vždy znamená, že tam sdílená paměť vznikne? A pokud chci začít sdílet již existující data, musím je do sdílené paměti nakopírovat?
Ono je to vlastně logické, protože shmat už neví nic o tom, že jsem před chvílí přes shmget sdílenou paměť vytvořil, a kdybych se pokusil s tou mojí logikou namapovat na existující adresu sdílenou paměť vytvořenouněkým jiným, měl bych najednou dva kandidáty na obsah sdílené paměti – obsah, který tam vytvořil jiný program (a který se sdílí), a obsah, který je uložen na zadané adrese v adresním prostoru mého programu. A to by asi nešlo.
Takže ano, adresa předávaná fci shmat je dobrá jenom k tomu, pokud mám speciální přání, kam do mého adresního prostoru se má sdílená paměť namapovat, ale sdílet již přidělenou paměť takhle nemůžu.
Díky za nakopnutí správným směrem
Tiskni
Sdílej: