は私が持っている2つのコード親から2つのコマンドを並列に実行するにはどうすればよいですか?
1.
use File::Temp qw(tempfile);
$tmp = new File::Temp(UNLINK => 0);
system("tv_grab_au | tv_sort >> $file");
system("cp $file $HOME/.xmltv/listings.xml");
unlink($file);
2.
while (-e $file) {
sleep 2;
system("tvtime-command DISPLAY_MESSAGE \'Updating TV Guide. Please wait this might take a several minutes...\'");
}
私は同時にtv_grab_au XMLTVグラバ(更新TVガイド)を実行するには、この2のコードを組み合わせて、したいと思います
、 TVガイドの更新メッセージを表示するには、tvtimeにコマンドを送信します。 $ fileが存在するまで、2秒おきに、これは数分かかるかもしれません... '
私はこの1つを試してみてください。
use strict;
use warnings;
use File::Temp qw(tempfile);
my $file = new File::Temp(UNLINK => 0);
use POSIX qw(:sys_wait_h);
$|++;
defined(my $pid = fork) or die "Couldn't fork: $!";
if (!$pid) {
system("tv_grab_huro | tv_sort >> $file");
unlink($file);
}
else {
while (! waitpid($pid, WNOHANG)) {
system("tvtime-command DISPLAY_MESSAGE \'Updating TV Guide. Please wait this might take a several minutes...\'");
sleep 2;
}
}
感謝。
'fork'は子に「0」を返します。フォークが失敗した場合にのみ 'undef'を返します。 – mob
あなたは正しいです、私はその編集を行います。 –