Автор Тема: Как убить... процесс  (Прочитано 2383 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mind4

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как убить... процесс
« : 23 Августа 2005, 19:13:18 »
Имеется простейшая программа (см. ниже). Согласно идее - создается процесс, печатает свой pid, после чего сразу делает то что называется exit. После этого по идее операция kill(0, $pid) должна возвращать ложь. Кто объяснит мне почему возвращается not ложь?

#!/usr/bin/perl -w
use strict "vars";

my @processes;
$SIG{CHLD} = \'IGNORE\';
for (1..3)
{   if (not defined (my $pid = fork))
   {   print "failed to fork\\n";
   }   elsif ($pid == 0)
   {   # child
      print "child pid: $$\\n";
      exit;
   }   else
   {   # parent
      push @processes, $pid;
   }
}

for (1..6)
{   print "$_: ".(kill 0, $_)."; " foreach @processes;
   print "\\n";
   sleep 1;
}

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28