URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 54124
[ Назад ]

Исходное сообщение
"Си: Shared Memory"

Отправлено slavon , 04-Мрт-05 15:25 
Народ... кто салкивался, подскажите

Нужно синхронизировать массив структур через память
shm_open - отлично подходит, но требует tmpfs привязанную к /dev/shm

Отражение в память не подходит... мне надо сделать так, чтобы небыло работы с HDD... чтобы синхронизация напрямую была через память...

пробовал делать

struct somestruct name[50];
mmap(&name, sizeof(name) * длинна массива, flags, ANONYM (пробовал добавть `| shared`), -1, 0); // return > -1

name[0].el = 1;

if (fork() == 0){
name[0].el = 2;
exit(0;)
}

waitpid(-1,0,0);
printf("%d\n", name[0].el); // выводит 1
exit(0);

Как быть?


Содержание

Сообщения в этом обсуждении
"Си: Shared Memory"
Отправлено slavon , 04-Мрт-05 15:26 
>mmap(&name, sizeof(name) * длинна массива, flags, ANONYM (пробовал добавть `| shared`), -1, 0); // return > -1

просто описался - sizeof(struct somestruct) * длинна массива