1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[C] Duvida com fork

Discussão em 'Programação' iniciada por MrVerissimo, 6 de Dezembro de 2008. (Respostas: 4; Visualizações: 627)

  1. MrVerissimo

    MrVerissimo Power Member

    Boas,

    Gostaria de saber se ha alguma forma de partilhar memoria entre pai e filho.
    O problema é o seguinte: tou a criar um programa em que o processo pai lanca um filho e este faz um sleep de determinada duracao. O que eu queria era que o filho ao acabar o sleep mudasse uma variavel no pai. Isto tudo com o pai sempre a correr. Ou seja, não me interessava comunicar por pipe, utilizar sinais etc, porque o pai ficaria parado num determinado sitio a espera da resposta do filho.
    Acho que a unica forma que me daria jeito aqui seria mesmo memoria partilhada (se é que dá para fazer) mas estou aberto a sugestoes claro =).

    Espero ter-me feito entender.
    Obrigado desde já.

    Cumps
     
  2. solidforms

    solidforms Power Member

    porque nao queres usar sinais? :o. poderias fazer usando waitpid ou algo.
    Com memoria partilhada poderia ser possivel. Usando semaforos! Da uma pesquisa nesse aspecto. Assim como se fosse um produtor/consumidor. O filho quando termina mete para a memoria, o pai quando esta algo para tirar da memoria acede e executa.

    Espero ter ajudado em algo ;).
    Cumps :D
     
  3. The_True_Eue

    The_True_Eue Power Member

    shmget(2)
    Acho que é isto que queres.
    Não te esqueças de sincronizar o acesso a essa parte da memória... com semáforos...
    Aqui tem mais detalhes: ipc(5)
     
    Última edição: 6 de Dezembro de 2008
  4. Não te esquças que processos são diferentes de threads.
    Existem é várias maneiras de inter-process comunication, daí o pessoal pensar em usá-las.
    Os processos têm espaço de endereçamento diferente daí não se conseguir mudar certos valores um dos outros como nas threads. Podes ver um livro como Sistemas operativos de Tanenbaum como são as diferenças e características entre threads e processos antes de te aventurares a programar. Ou podes ver no google.
     
  5. MrVerissimo

    MrVerissimo Power Member

    Obrigado pelas rapidas respostas. Já me elucidaram sobre alguns aspectos importantes. Tive a ver melhor e no meu caso é capaz de ser mais rapido de implementar o wait. Obrigado again.

    Cumps
     

Partilhar esta Página