я хочу запускать программу и управлять её stdout & stdinput из своей программы. Написал следующий код, но он вылетает сразу после первой команды со словами Broken Pipe: #!/usr/bin/perl -w use IPC::Open2; use strict; my ($pid1,$line); my $pid = open2(*RD, *WR, '/home/victor/roof/lmox1'); if ($pid1 = fork) { # fork dlya 2-x process, v etom # pishu na stdin my_program while(<STDIN>){ # chitayu vvod s kezboard print WR $_,"\n"; # pishu vvod so STDIN v my_program; } waitpid($pid1,0); } else { # v etom process chitayu stdout my program die "cannot fork: $!" unless defined $pid; while(<RD>){ # next unless /\S/; print $_; } print "tut\n"; # vihodit tut posle pervoj komandy exit; } Может, быть, дело в том, что while(<RD>) работает только пока <RD> defined? А как тогда сделать так, чтобы while(<RD>) работал так-же как и while(<STDIN>) ? Спасибо!


Ответ на:
комментарий
от Legioner

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум perl, IPC & socket - чего тут не так? (2006)
- Форум [perl] проброс проги в сокет (2008)
- Форум Perl + FastCGI + nginx (2009)
- Форум помогите найти ошибки в следующем перловом коде (2004)
- Форум execl не принимает аргумент из pipe (версия 2, обновленная) (2015)
- Форум двунаправленный канал через ssh на perl (2003)
- Форум Разработка своего shell'a (2012)
- Форум stdin/stdout (2006)
- Форум PERL, перехват STDIN и STDOUT одновременно (2007)
- Форум stdin и stdout (2017)