Невозможно закрыть дескриптор файла печати в Perl - PullRequest
1 голос
/ 08 сентября 2011

У меня есть следующий фрагмент Perl:

open FH, " | lpr ";
print FH "Hello";
print FH "This is a print test";
close FH or die "can't close: $! $?";

Я получаю следующий вывод:

can't close: 256 at <filename> line 4

Любая помощь будет оценена ..

Спасибо взаранее:)

Ответы [ 2 ]

6 голосов
/ 08 сентября 2011

С perldoc -f close

Если дескриптор файла получен из открытого канала, «close» дополнительно вернет false в случае сбоя одного из других задействованных системных вызовов,или если программа завершает работу с ненулевым статусом.

Возможно, пропущенная ошибка связана с тем, что ваш lpr-процесс не завершен или что-то там не так.Работала ли печать?

0 голосов
/ 08 сентября 2011

Если файловый дескриптор получен из открытого канала, метод close возвращает false, если один из других задействованных системных вызовов завершается неудачно или его программа завершает работу с ненулевым статусом. Если единственная проблема заключалась в том, что программа вышла не из нуля, $! будет установлен в 0. Закрытие канала также ожидает завершения процесса, выполняющегося в канале - в случае, если вы хотите посмотреть на выход канала впоследствии - и неявно помещает значение состояния выхода этой команды в $? и ${^CHILD_ERROR_NATIVE}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...