Вопросы программирования на Free Pascal, использования компилятора и утилит.
Модератор: Модераторы
SergKam » 21.01.2010 12:33:22
Мне в программе надо переоткрыть стандартные вывод и вывод ошибок. Это нужно для ротации логов.
файл переименовывается, а потом мне дается сигнал для закрытия старого и открытия нового файла(с темже именем)
мне нужно чтото типа
rewrite(stderr);
rewrite(stdout);
но я с типами файлов запутался. как правильно это написать?
-
SergKam
- постоялец
-
- Сообщения: 251
- Зарегистрирован: 16.11.2005 21:31:11
- Откуда: Украина,Харьков
yuriz » 05.02.2010 16:48:30
Это просто. Пример запуска программы:
- Код: Выделить всё
$ std_stream_test test.pas output.txt trace.txt
Код:
- Код: Выделить всё
var inf, outf, dbgf: text;
begin
(* Открыть входной файл на чтение *)
Assign(inf, ParamStr(1));
Reset(inf);
(* Если запрошено - перенаправить стандартный вывод *)
if ParamCount >= 2 then begin
Assign(outf, ParamStr(2));
Rewrite(outf);
end else
FPdup(output, outf); // Не запрошено - просто дублируем файловый дескриптор
(* Аналогично со стандартным потоком ошибок *)
if ParamCount = 3 then begin
Assign(dbgf, ParamStr(3));
Rewrite(dbgf);
end else
FPdup(stderr, dbgf);
(* Тело программы... *)
Close(dbgf);
Close(outf);
Close(inf);
end.
-
yuriz
- незнакомец
-
- Сообщения: 1
- Зарегистрирован: 05.02.2010 13:25:38
- Откуда: Finland
-
Вернуться в Free Pascal Compiler
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5