_cexit, _c_exit
Выполняет операции очистки и возвращает без завершения процесса.
void _cexit( void );
void _c_exit( void );
Заметки
Функция _cexit вызывает, в порядке "последнее на входе — первое на выходе" (LIFO), функции, зарегистрированные atexit и _onexit. Затем _cexit удаляет все буферы ввода-вывода и закрывает все открытые потоки перед возвратом. _c_exit совпадает с _exit, но возвращает в вызывающий процесс без обработки atexit или _onexit или очистки буферов потоков. Поведение exit,_exit, _cexit и _c_exit показано в следующей таблице.
Функция |
Поведение |
---|---|
exit |
Выполняет полные процедуры завершения библиотеки C, завершает процесс и завершается с предоставленным кодом состояния. |
_exit |
Выполняет быстрые процедуры завершения библиотеки C, завершает процесс и завершается с предоставленным кодом состояния. |
_cexit |
Выполняет полные процедуры завершения библиотеки C и возвращает управление вызывающему объекту, но не завершает процесс. |
_c_exit |
Выполняет быстрые процедуры завершения библиотеки C и возвращает управление вызывающему объекту, но не завершает процесс. |
При вызове функций _cexit или _c_exit, деструкторы для любых существующих во время вызова временных или автоматических объектов не вызываются. Автоматический объект является объектом, который определен в функции, в которой он не объявляется статическим. Временный объект — это объект, созданный компилятором. Чтобы удалить автоматический объект перед вызовом _cexit или _c_exit, явным образом вызовите деструктор объекта следующим образом:
myObject.myClass::~myClass( );
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_cexit |
<process.h> |
_c_exit |
<process.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Эквивалент в .NET Framework
System::Diagnostics::Process::CloseMainWindow