Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Вывод информации в консоль   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
11-1117688514
azsd
2005-06-02 09:01
2006.01.22
KOL+FPC 2.0 return 39 errors in converted kol.pas


2-1136469766
ArtemESC
2006-01-05 17:02
2006.01.22
Оттенки цветов...


2-1136670705
Igorioha
2006-01-08 00:51
2006.01.22
Объявление переменной


2-1136633982
_Sergey_
2006-01-07 14:39
2006.01.22
Создание элементов PopupMenu в Runtime + назначение событий.


2-1136324641
Aleks
2006-01-04 00:44
2006.01.22
Управление другим приложением