![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
Всем, привет!
Ради тренировки, написал программу в которой дескрипторы STDIN, STDOUT и STDERR связываю с файлами, как показано ниже: STDIN - 'infile.txt' STDOUT - 'outfile.txt' STDERR - 'errfile.txt' В файле infile.txt прописаны команды Командной строки. После выполнения программы, в файл outfile.txt записываются результаты команд прописаных в файле infile.txt, а в файл errfile.txt ошибки, которые возникли при выполнении системных комад и самой программы. Так как, в файл outfile.txt символы кирилицы записывались досовской кодировке, я решил написать небольшой класс, цель методов которого, перекодировать символы полученной строки из одной кодировки в другую и вернуть уже перекодированную строку. Но для того что бы он мог перекодировать, одному из его методов необходимо передать строку а результат сохранить в переменную. С файлом outfile.txt проблем не возникло, зато в файл errfile.txt все записи, где есть символы кирилицы, прописываются в дос-кодировке. Как перехватить системную ошибку и сохранить её в переменной, для дальнейшей обработки и затем вывести эту, уже обработанную, ошибку в STDERR? Заранее спасибо, Денис Это сообщение отредактировал(а) korob2001 - 19.3.2004, 13:33 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Arush |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 10.11.2003 Репутация: нет Всего: 1 |
Ты наверно имеешь в виду не "перехватить системную ошибку" а "перхватить текст сообщения об ошибке" ?
IMHO проще всего открыть какой-нибудь пайп, дескриптор для записи назначить как stderr, из дескриптора для чтения читать, перекодировать в нужную кодировку и записывать на диск(причем для пайпа это наверно можно будет сделать один раз - в конце программы). Удачи Александр |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
To Arush
Насколько я понимаю в конце программы нужно сделать что-то подобное:
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Гость_mcx |
|
|||
|
Unregistered |
можно использовать модуль CGI
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
Большое спасибо.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |