C + Semaforos

kanguru disse:
o problema é que ao usar mmap, "converti" o ficheiro numa string gigante, nao funciona o getline lá. Ou estarei a usar mal?
se tiveres um linha gigantesta sem \n o getline vai estourar... explica aí como é o ficheiro..
mtas linhas ou tudo na mma?
 
o ficheiro é como eu quizer, mas pretendia muitas linhas. Mas penso que vou mudar todo o formato. Vou mappear o ficheiro com uma estrutura. Ou seja, fico com uma lista de estruturas em memoria que irão corresponder ao ficheiro. Não sei é como fica o aspecto do ficheiro. Vamos a ver se resolvo isto.
 
Agora anda-me a dar um erro:

Código:
*** glibc detected *** free(): invalid next size (fast): 0x0804d180 ***
Aborted

Que será isto? apontadores? na consigo perceber.

EDIT: Isto com insistencia vai la. Acho que ja corrigi o erro,, para variar era andar a mexer em memoria que não podia :S é o que dá tar uns quantos anos sem mexer em C e trabalhar com linguagens como Java que tratam de tudo sozinhas :P
 
Última edição:
Urgente

Desculpem andar por aqui a chatear mas enfim:

Existe alguma forma de usar memoria partilhada de forma dinâmica? Estilo alterar o tamanho reservado? :|
 
isso é memoria dinâmica. Mas isso so dá para usar num processo. Com memoria partilhada (através do IPC) posso comunicar entre processos. So que não tou a ver como comunicar pois é preciso ir alterando o tamanho da memoria partilhada.

o que preciso de fazer é:

1. tenho um servidor;
2. Nr indefinido de clientes que precisam de registar o seu id nessa memoria partilhada
3. O servidor vai ler o id de cada um deles e "servi-los".

Não tou a ver como fazer isto.
 
pah o ke tu precisas é de um semaforo no acesso a memoria partilhada, ou seja : se aceredes a memoria em 10 sitios doferentes entao proteges esses 10 sitios com o MESMO semaforo, assim garantes que so lá esta um processo de cada vez.... o tamanho da memoria partilhada é o ke kiseres...
 
Back
Topo