Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизВывод информации в консоль Найти похожие ветки
← →
TUser © (2005-12-14 13:21) [0]Есть консольное приложение, вывод которого может быть перенаправлен в файл. Возникает проблема, если приложение было завершено нештатно (Ctrl+C). Ведь данные пишутся в буфер, и если выведенного текста мало, то в буфере и остаются, не попадая в файл. FreePascal при этом как-то делает так, что данные пишутся на диск при "нештатном" завершении программы. Можно ли как-то это победить?
program test;
{$apptype console}
var i: integer;
begin
Write ("a");
for i:=-MaxInt to MaxInt do
begin end;
end.
uses:
test > t
Ctrl+C
type t
← →
Digitman © (2005-12-14 13:32) [1]
> в буфере и остаются, не попадая в файл
сам-то понял что сказал ?
← →
umbra © (2005-12-14 13:33) [2]см. справку по
SetConsoleCtrlHandler
← →
TUser © (2005-12-14 17:09) [3]
> umbra © (14.12.05 13:33) [2]
Да, подсуну я свой хендлер. Надо в нем как-то прописать освобождение буфера и запись данных на диск. Пробовал тамCloseHandle(GetStdHandle(std_output_handle));
но без толку.
← →
Leonid Troyanovsky © (2005-12-14 17:21) [4]
> TUser © (14.12.05 17:09) [3]
> Да, подсуну я свой хендлер. Надо в нем как-то прописать
> освобождение буфера и запись
FlushFileBuffers ?
Для хендла от GetStdHandle.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.077 c