Byla vydána nová verze 9.1.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Vypíchnout lze vylepšené vyhledávání nebo podporu Pixel Motion Photos. Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.
Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.
Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
Ahoj jsem v C/C++ trochu začátečník a chtěl bych se zeptat jak udělat abych do sdílený paměti u procesů dostal celý pole??Dostanu tam třeba celou strukturu ale jak tam dostat pole mi moc jasny neni jestli to teda vůbec jde.
tohle je muj kod:
#include <stdio.h>
#include <sys/shm.h>
#include <sys/stat.h>
int main(){
int segment_id;
//int *shared_memory;
struct shmid_ds shmbuffer;
int segment_size;
const int shared_segment_size = 0x6400;
typedef struct struct_kamion{
int id;
int kolik;
};
struct_kamion pole_kamionu[2];
struct_kamion *shared_memory;
struct_kamion kamion = {1111,1};
pole_kamionu[0] = kamion;
struct_kamion kamion2 = {2222,2};
pole_kamionu[1] = kamion2;
/* Alokovani sdileneho pametoveno segmentu */
segment_id = shmget(IPC_PRIVATE, shared_segment_size, IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR);
/* Pripojeni sdileneho segmentu */
shared_memory = (struct_kamion *) shmat(segment_id, NULL, NULL);
printf("sdilena pamet byla pripojena na adresu %p\n", shared_memory);
/* Urceni velikosti segmentu */
shmctl(segment_id, IPC_STAT, &shmbuffer);
segment_size = shmbuffer.shm_segsz;
printf("velikost segmentu: %d\n", segment_size);
/* Zapsani retezce do sdileneho pametoveho segmentu */
shared_memory[0] = pole_kamionu[0];
//shared_memory->id = pole_kamionu[0].id;
//sprintf(shared_memory, 23);
/* Odpojeni pametoveho segmentu */
shmdt(shared_memory);
/* Nove pripojeni sdileneho segmentu( na urcitou adresu) */
shared_memory = (struct_kamion*) shmat(segment_id, (void *) 0x5000000, NULL);
printf("sdilena pamet byla pripojena na adresu %p\n", shared_memory);
/* Vypis retezce ze sdilene pameti */
int idKamionu = 4;//shared_memory->id;
printf("%d\n", idKamionu);
/* Odpojeni segmentu */
shmdt(shared_memory);
/* Dealokovani sdileneho pametoveho segmentu */
shmctl(segment_id, IPC_RMID, NULL);
return(0);
}
sizeof(kamion) * pocet_radku * pocet_sloupcu
a potom misto
pole[radek][sloupec]
k tomu pristupujes pomoci
pole[radek * pocet_sloupcu + sloupec]
int** pole = (int**) shmat(segment_id, NULL, NULL); pole[0][0] = ...
Tiskni
Sdílej: