Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

nelson.p

Programação em C por processos

Mensagens Recomendadas

nelson.p    0
nelson.p

Boas!

Pessoal estou com uma dúvida num trabalho...

Aquilo que eu pretendia era criar um processo pai que leia um valor do teclado e coloque na memória partilhada.

Depois ter dois filhos que vão ler o valor introduzido ao pai...

Será que alguém me pode ajudar com o código para criar estes processos???

Ninguém tem por nada parecido?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nelson.p    0
nelson.p

O que é que já tentaste?

Já criei a memória partilhada e os somáforos.... Agora tou com duvidas é na forma como vou criar os 3 processos(pai e 2 filhos). E na forma como vou interligar isto tudo...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

Já criei a memória partilhada e os somáforos.... Agora tou com duvidas é na forma como vou criar os 3 processos(pai e 2 filhos). E na forma como vou interligar isto tudo...

Semáforos.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

Ele estava a corrigir-te. Escreveste "somáforos" uma data de vezes.

Pesquisa no fórum por fork, e vê as várias dicas que já foram dadas. Eu não sei grande coisa de processos em *nix, mas se mostrares trabalho alguém que perceba te ajudará.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nelson.p    0
nelson.p

Ele estava a corrigir-te. Escreveste "somáforos" uma data de vezes.

Pesquisa no fórum por fork, e vê as várias dicas que já foram dadas. Eu não sei grande coisa de processos em *nix, mas se mostrares trabalho alguém que perceba te ajudará.

Ah! ok! não tinha dado conta...lol. já tive a ler... mas mesmo assim não tá fácil...nem consigo criar os 2 filhos :P

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Njay    0
Njay

O que não faltam são exemplos na net de como criar processos com fork(), mesmo em português. Mostra lá o código que já tens e explica qual é o erro que dá ("não consigo criar" é extremamente vago), para te darmos umas dicas.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nelson.p    0
nelson.p

#include <stdio.h>
main ()
{
int pid, status, childPid;
printf ("Eu sou o pai e meu PID e' %d\n", getpid ());
pid = fork ();
if (pid != 0)
{
printf ("Eu sou o pai com PID %d e PPID %d\n",
getpid (), getppid ());
childPid = wait (&status); /* Espera filho terminar. */
printf ("Um filho com PID %d terminou com codigo de saida %d\n",
childPid, status >> 8);
}
else
{
printf ("Eu sou o filho com PID %d e PPID %d\n",
getpid (), getppid ());
exit (13);
}
printf ("PID %d termina\n", getpid () );

Tenho este código... Se quiser ter 2 filhos e 1 pai que alterações terei de fazer?

Alguém me pode ajudar sff?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nelson.p    0
nelson.p

#include <stdio.h>
main ()
{
int pid, status, childPid;
printf ("Eu sou o pai e meu PID e' %d\n", getpid ());
pid = fork ();
if (pid != 0)
{
printf ("Eu sou o pai com PID %d e PPID %d\n",
getpid (), getppid ());
childPid = wait (&status); /* Espera filho terminar. */
printf ("Um filho com PID %d terminou com codigo de saida %d\n",
childPid, status >> 8);
}
else
{
printf ("Eu sou o filho com PID %d e PPID %d\n",
getpid (), getppid ());
exit (13);
}
printf ("PID %d termina\n", getpid () );

Tenho este código... Se quiser ter 2 filhos e 1 pai que alterações terei de fazer?

Alguém me pode ajudar sff?

Ok! Só mais uma cena... Neste programa quero introduzir memória partilhada e semaforos... Fiz a criação dos semaforos e da memoria partilhada num ficheiro à parte... Como faço para os filhos irem buscar a informação que o pai colocou na memória partilhada?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade