seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

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

seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

[tutorial] fork em perl

Ir para baixo  Mensagem [Página 1 de 1]

1[tutorial] fork em perl Empty [tutorial] fork em perl Dom Ago 26, 2012 6:34 pm

Kodo no Kami

Kodo no Kami
master
master

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

https://endoffile.umforum.net

Ir para o topo  Mensagem [Página 1 de 1]

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