Nylon Tecnologia
Mudamos para um dominio proprio.

Acesse nosso novo forum.

http://crawlersnetwork.com/

Participe do fórum, é rápido e fácil

Nylon Tecnologia
Mudamos para um dominio proprio.

Acesse nosso novo forum.

http://crawlersnetwork.com/
Nylon Tecnologia
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[tutorial] fork em perl

Ir para baixo

[tutorial] fork em perl Empty [tutorial] fork em perl

Mensagem por hacker fts315 Dom Ago 26, 2012 7:06 pm

bom galera muitas vezes quando criamos um programa ele fica preso em um loop e so executar o resto do codigo quando sai do loop, isso pq o programa so usa um unico processo para se executar entao fica limitado apenas a unico processo pai (thread), veja um exemplo

Código:
#!/usr/bin/perl

while(1)
{
  print "hacker" . "\n";
}

while(1)
{
  print "fts315" . "\n";
}

na source acima ele tem dois loops, ambos sao loop infinito quando executar o script nunca vai chegar no segundo loop isso pq vai ficar preso no primeiro =/ , uma maneira de executar o segunda e fazer o script usar sub-processos para o mesmo (thread) q no caso e o fork, so lembrando mesmo q esteja usando simultaneamente o terminal e apenas um entao se der um pause no terminal por exemplo system("pause") ele vai pausar o terminal e nao vai exibir nada ate apertar enter, para usar fork basta atribuir ele a uma variavel

Código:
#!/usr/bin/perl

$fts = fork();

pronto na variavel recebeu o pid do processo, depois q vc chama a funçao fork ele ja criar um sub-processo e da parte dele pra baixo ele vai executar entao na source abaixo vai aparecer duas vezes "hacker fts315"


Código:
#!/usr/bin/perl

$fts = fork();

print "hacker fts315 \n";

para manipular os processo basta colocar uma condiçao logo depois de criar e colocar um exit() para terminar o sub processo filho

Código:
#!/usr/bin/perl

$fts = fork();

if($fts == 0)
{
  print "isso e o sub-processo";
  exit(0);
}

print "hacker fts315 \n";

para mostrar q os processo funciona simultaneamente veja o primeiro exemplo do loop

Código:
#!/usr/bin/perl

$fts = fork();

if($fts == 0)
{
  while(1)
  {
      print "hacker" . "\n";
  }
  exit(0);
}

while(1)
{
  print "fts315" . "\n";
}

by hacker fts315
hacker fts315
hacker fts315
Membro

Mensagens : 53
Pontos : 8857
Reputação : 32
Data de inscrição : 12/08/2012

http://endoffile.umforum.net

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos