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

jamirooo

[Resolvido] colocação do fork()

3 mensagens neste tópico

Boas! tenho a seguinte duvida...

neste programa

#include <stdio.h>
int main (){
int var=10;
fork();
var++;
printf("%d\n", var);
return 1;
}

com o fork nesta posiçao ele vai retornar dois 11's .

depois se o coloco na posiçao entre o incremento e o printf ele imprime um 11 e depois o segundo 11 ele vai imprimir a seguir ao "nome da bash" exemplo:

"11

bruno-ferreira-PC$11

"

queria saber o porquê da diferença entre ambos...obrigado desde já..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que isso não deve ser determinístico. Assim à primeira vista, em qualquer posição que coloques o fork isso pode acontecer.

Para garantir que isso não acontece, tens que pôr o processo pai a esperar pelo processo filho, através do wait.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que isso não deve ser determinístico. Assim à primeira vista, em qualquer posição que coloques o fork isso pode acontecer.

Para garantir que isso não acontece, tens que pôr o processo pai a esperar pelo processo filho, através do wait.

hmm....tens razao...isto tambem me acontece noutras situações... Obrigado!

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