View Full Version : Arrays e memoria partilhada


nasic
15-11-2007, 17:44
Boa tarde, tenho uma duvida:
Tenciono passar um array para memoria partilhada. Esta memoria é criada atraves da função shm_open.
Como vou passar este array?é necessario alocar memoria?

Obrigado

MadOnion
15-11-2007, 18:10
Tens uma função que se chama, mmap, que "coloca" por assim dizer, um valor para a memória, ou seja, estabelece uma ligação entre um processo e a memória partilhada.

//The mmap() function establishes a mapping between a process' address space and a file or shared memory object.
int *pointer = mmap(0, sizeof(int), PROT_READ | PROT_WRITE, MAP_SHARED, mem, 0);

Em que mem é o tamanho do segmento de memoria partilhada MAXIMA que criaste anteriormente.

Dá uma olhada em: Link (http://opengroup.org/onlinepubs/007908799/xsh/mmap.html)

PS: Estás na FCUL?

nasic
15-11-2007, 20:22
Obrigado pela tua resposta!
Eu sei disso, tava a utilizar bem todas as funções relativas à criação da memoriaJá tinha feito com inteiros e funcionava perfeitamente. O problema tava mm em passar o array, mas ja esta resolvido:P
Ha coisas do catano!

Tou na fcul sim. tas a fazer SO tb?

MadOnion
15-11-2007, 20:41
Também estou a fazer SO.
Só falta a versão2, boa sorte.