Есть такой перловский скрипт:Внутри делается fork.
Child процесс запускает посредством system скрипт(make), который в свою очередь вызывает последовательно 3 скрипта. Последний третий скрипт запрашивает ввод у пользователя.
Весь аутпут child-a направляю в файл с тем чтобы родитель мог запарсить его лог и предпринять соответствующие действия.
Так вот когда поступает сигнал верхнему родителю SIGTTIN в этот момент в файле находится лог только от первых двух скриптов, записи от 3-го будут присутствовать только после его собсно завершения.
Доступа к этим 3-м скриптам нету физически, как и к их вызывающему (make)
Вопрос: как заставить прогу вытолкнуть буфер в файл.
Вот код:
#!/bin/perl
use Tk 804;
use strict;
my $pid = "";
$pid = fork();
if (not defined $pid)
{print "Cannot create child process(fork)";return 1;}
elsif ($pid == 0) # child process
{
open(STDOUT, ">logfile");
$| = 1;
system "make ....... ";
exit;
}
else #parent process
{
$| = 1;
$SIG{'TTIN'} = sub { ..... };
my $MW = MainWindow->new;
MainLoop;
}
Заранее спасибо