Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Edward Muhutdinov                    2:5049/89.13   07 Jan 2001  01:03:39
 To : All
 Subject : fork
 -------------------------------------------------------------------------------- 
 
 
 Четверг Декабрь 07 2000 17:39, Edward Muhutdinov wrote to Andrey Brindeew:
  AB>> Встречный вопрос - зачем форкаемся? Если затем, чтобы после
  AB>> отдачи клиенту сообщения "Работа запущена, ждем-с результаты..."
  AB>> продолжить что-то делать (например, рассылку или еще чего
  AB>> критичное ко времени), то тебе нужно отделиться нафик от
  AB>> родителя, которому скоро суждено сдохнуть.
  EM> нужно отделиться от родителя, выполнить определенные действия и
  EM> сдохнуть. Только и всего :) Hо при этом выполнить только действия,
  EM> идущие после самого fork.
 
  EM> Я пробовал так:
 
  EM> #!/usr/bin/perl
 
  EM> use CGI;
  EM> $cgi=new CGI;
 
  EM> print $cgi->header;
 
  EM> print "<title>Текстец усякий</title>трампампам раз.";
 
  EM> for(0..5)
  EM> {       unless(fork())
  EM>         {       open STDIN,'/dev/null';
  EM>                 open STDOUT,'>/dev/null';
  EM>                 open STDERR,'>&STDOUT';
  EM>                 open NAM,'>>aaa';
  EM>                 print NAM "text\n";
  EM>                 close NAM;
  EM>                 exit 0;
  EM>         }
  EM> }
  EM> В результате демонстрирует пять или шесть раз хидер и титл, а также
  EM> шесть раз пишет в ./aaa фрагмент "text". Мне же нужно, чтобы он писал
  EM> хидер и титл один раз, а в ./aaa писал, естественно, шесть 'text'.
  EM> Причем варьирование условий (unless, while etc.) дает какой-то
  EM> результат при выполнении из командной строки (однако непредсказуемый
  EM> результат - что мне не совсем понятно), но обращение браузером
  EM> неизменно - шестикратное клонирование хидера и титла.
 
  EM> Что-то неправильно. Hо что?
 
 В общем, случайно сам набрел на решение. Может, кому-то пригодится, поэтому
 привожу его здесь.
 
 Где-нибудь в начале:
 
 $|=1;
 
                                        С приветом, Edward M.
 
 --- ДДДmailto:wtiger@mail.ruДДДhttp://wtiger.ncport.ruДДДICQ UIN 9625056ДДДДД
  * Origin: Эк тебя скрючило! (2:5049/89.13)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 fork   Edward Muhutdinov   29 Nov 2000 22:44:13 
 Re: fork   Andrey Brindeew   04 Dec 2000 00:14:24 
 fork   Edward Muhutdinov   07 Dec 2000 18:39:38 
 fork   Edward Muhutdinov   07 Jan 2001 01:03:39 
Архивное /ru.perl/33963a57b2b9.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional