usando a função fork()

1. usando a função fork()

Paulo
paulo_moc

(usa Ubuntu)

Enviado em 15/09/2012 - 15:27h

Olá, bem eu usei essa função, mas ainda não entendi muito bem o seu funcionamento, ao que me parece ela seria uma especie de thread certo(por favor me corrijam)?

Eu fiz o seguinte codigo para teste :

int main(int argc, char *argv[])
{
pid_t pid;


pid = fork();

if(pid == 0)
{
printf("Filho");
}

if(pid != 0)
{
printf("Pai");
}

}

então na saida do code::blocks, apareceu 'Pai' e depois que o programa foi finalizado apareceu 'Filho', então é como se ela criasse um processo dentro do outro? e para cada um deles o valor de pid é diferente?


  


2. Re: usando a função fork()

André
andrezc

(usa Debian)

Enviado em 16/09/2012 - 02:15h

A chamada fork(), na verdade, cria um processo. No caso do seu exemplo, cria um processo filho. Esse processo de deriva (o secundário) é chamado de processo filho exatamente por ser idêntico ao processo primário, o pai.

E sim, os PIDs serão diferentes.

Sugiro a leitura deste [http://www.vivaolinux.com.br/artigo/A-duplicacao-do-buffer-de-saida-na-chamada-de-sistema-fork()-do-Linux/] artigo, para que você tenha uma visão mais ampla dessa chamada de sistema, vendo os resultados na prática.

Sugiro a leitura também das seguintes referências:

http://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.html

http://www2.cs.uregina.ca/~hamilton/courses/330/notes/unix/fork/fork.html



3. Re: usando a função fork()

Paulo
paulo_moc

(usa Ubuntu)

Enviado em 16/09/2012 - 17:47h

so mais uma coisa, eles são executados ao mesmo tempo?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts