Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > fork и system


Автор: patt 21.3.2011, 21:39
Хочу написаль плеер с такой логикой:
 - запускаем, появляется пронумерованое меню радиостанций
 - вводим номер радиостанции, она начинает играть
 - вводим номер другой радиостанции, она начинает играть

вот, что есть:
Код

#!/usr/bin/perl -w

sub showList
{
    print "
    1 - просто радио
    2 - kiss
    3 - люкс
    4 - mfm
    5 - наше радио
    6 - relax
    7 - русское радио
    8 - дорожное радио
    9 - хит fm
    10 - maximum
    11 - ретро fm
";
}
sub kill_my{
    my ($id)=@_;      
    my $syst=$^O;
    if($syst =~/Win/){return kill(9,$id)}else{return kill("TERM",$id)};



my $parent=$$;
my $song = 'mplayer http_proxy://proxy.com:1234/http://62.80.190.246:8000/ProstoRadiO128';
my $child=fork(); 
if($$ == $parent)
{
      while($inp = <>)
    {
        if(kill(0,$child))
        {
              my $kill=kill_my($child);
        }
        #`killall radio.pl`;
        showList();
        $song = 'mplayer http_proxy://proxy.com:1234/http://77.120.104.251:8088/';
        print "\nqqq $song qqq\n";
        print $child=fork();
    }

}else{

    print "\nqqq $song qqq\n";
    `$song`;
}


после нажатея почему то второй поток не запускается (точнее создаётся но ничего не выводит):

qqq mplayer http_proxy://proxy.com:1234/http://62.80.190.246:8000/ProstoRadiO128 qqq
mplayer: ........
(начинает играть)
qqqq<enter>                                  // ввожу
wqqq mplayer http_proxy://proxy.com:1234/http://77.120.104.251:8088/ qqqw
55750

MPlayer interrupted by signal 13 in module: play_audio
- MPlayer crashed. This shouldn't happen.
  It can be a bug in the MPlayer code _or_ in your drivers _or_ in your
  gcc version. If you think it's MPlayer's fault, please read
  DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and
  won't help unless you provide this information when reporting a possible bug.
 [ This binary of MPlayer in Debian is currently compiled with
   '--enable-debug'; the debugging symbols are in the package
   'mplayer-dbg'.]




Автор: vivu 21.3.2011, 23:55
Никогда толком не понимал эти форки! 

А как у вас номер радиостанции с урлом связан?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)