IPB

> ErrorAddr, ExitCode и ExitProc (переменные) (модуль System)
Чат
Форум
Загрузка...
 

Язык:
Русский
English

 ErrorAddr, ExitCode и ExitProc (переменные)     (модуль System)


Переменные ExitProc, ExitCode и ErrorAddr используются для установки процедуры выхода.

Указательная переменная ExitProc позволяет вам устанавливать процедуру выхода. Процедура выхода всегда вызывается при завершении программы.

Процедура выхода не требует параметров и должна компилироваться с директивой дальнего вызова (FAR).

При условии корректной установки, процедура выхода становится частью цепочки процедур выхода. Процедуры выхода в такой цепочке выполняются в порядке, обратном установке.

Чтобы сохранить цепь процедур выхода неповрежденной, вы должны сохранить текущее содержание переменной ExitProc перед изменением ее на адрес вашей собственной процедуры выхода.

Первый оператор в вашей процедуре выхода должен переустановить сохраненное значение переменной ExitProc.

Процедура выхода может получить информацию о завершении, исследуя переменную типа Integer ExitCode и указательную переменную ErrorAddr.

 ■ В случае нормального завершения, ExitCode = 0 и ErrorAddr = NIL.
 ■ В случае завершения через обращение к процедуре Halt, ExitCode
   содержит значение, переданное к Halt, а ErrorAddr = NIL.
 ■ В случае завершения из-за ошибки во время выполнения программы,
   ExitCode содержит код ошибки, а ErrorAddr содержит адрес оператора,
   в котором произошла ошибка.

Последняя из процедур выхода (установленная библиотекой поддержки) закрывает стандартные файлы Input и Output. Если значение ErrorAddr не равно NIL, то выводится сообщение об ошибке во время выполнения программы.

Как только библиотека поддержки вызвала все установленные процедуры выхода, программа завершает свое выполнение и возвращается в операционную систему, передавая как код возврата значение, сохраненное в переменной ExitCode.

 
 К началу страницы 
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 



-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"