• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

nelson.p

Programação em C por processos

20 mensagens neste tópico

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas tinha de ser com memória partilhada e somáforos :confused:

Não arranjo nada:(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É para fazer em linguagem C

Porreiro pá... Windows, Linux?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas as APIs a utilizar dependem do sistema operativo. Linux/Unix/MacOS/Windows/...?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quem me pode-se dar umas luzes agradecia mesmo... Tou mesmo à rasca...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Semáforos.

eu sei que é por semáforos... A minha dúvida é mesmo em relação ao código...

É nisso que preciso de ajuda!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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á.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#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?

0

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