2013-07-29 2 views
0

Существует линия в библиотеке, что я не могу вынуть:Есть ли способ узнать, открыт ли поток по умолчанию?

put oResults format "x(80)" skip. 

У меня есть программа, которая звонит в библиотеку, которая не имеет выхода по умолчанию так эта линия ошибки вне.

Я знаю, что могу просто отправить вывод в свою программу где-нибудь, но я хочу исправить его, чтобы вам не приходилось выводить результат. Возможно, функция поиска?

EDIT: 10.2B

я только получаю сообщение об ошибке в UNIX.

В среде UNIX эта строка:

put oResults format "x(80)" skip. 

ошибки вне.

, но если вы поставите:

if seek(output) <> ? then 
    put oResults format "x(80)" skip. 

он не делает ошибки.


в среде линии Unix:

put oResults format "x(80)" skip. 

ошибки вне.

, но если вы поставите:

if seek(output) <> ? then 
    put oResults format "x(80)" skip. 

он не делает ошибки.

+0

Какая версия прогресса? –

+0

Какая ошибка вы получаете? Я просто пробовал, что это звучит так, как будто вы делаете с простой тестовой программой и 10.2B на Linux. Если вывод по умолчанию не задан или даже явно закрыт, я не получаю ошибки. –

+0

Каков текст ошибки, которую вы видите? –

ответ

1

Вы работаете в пакетном режиме. Вы должны всегда перенаправлять свой вывод на уровне ОС при запуске в пакетном режиме. Что-то вроде этого:

bpro -p test.p > errors.out 2>&1 

Не перенаправляющий вывод почти всегда приведет к ошибке, которую вы видите.

Если вы встраиваете bpro, mbpro или _progres -b или любую другую команду в скрипт, который должен показывать этот вывод или иным образом работать с ним, вы обычно используете «cat» или «tail -f» в выходном файле ,