Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megszakítja az aktuális folyamatot, és egy hibakódot ad vissza.
Megjegyzés:
Ne használja ezt a módszert a Microsoft Store-alkalmazások vagy az univerzális Windows-platform (UWP) alkalmazások leállítására, kivéve a tesztelési vagy hibakeresési forgatókönyveket. Az Áruházbeli alkalmazások bezárásának programozott vagy felhasználói felületi módjai nem engedélyezettek a Microsoft Store szabályzatai szerint. További információ: UWP alkalmazás életciklusa.
Szemantika
void abort( void );
Visszaadott érték
abort nem adja vissza az irányítást a hívási folyamatnak. Alapértelmezés szerint egy megszakított jelkezelőt keres, és ha be van állítva, emel SIGABRT . Ezután abort leállítja az aktuális folyamatot, és visszaad egy kilépési kódot a szülőfolyamatnak.
Megjegyzések
Microsoft-specifikus
Alapértelmezés szerint, ha egy alkalmazás a hibakeresési futtatókörnyezet-kódtárral van létrehozva, a abort rutin hibaüzenetet jelenít meg a probléma felmerülése előtt SIGABRT . Konzol módban futó konzolalkalmazások esetén a rendszer elküldi az üzenetet a következő címre STDERR: . Az ablakos módban futó asztali Windows-alkalmazások és konzolalkalmazások üzenetmezőben jelenítik meg az üzenetet. Az üzenet letiltásához törölje _set_abort_behavior a jelölőt _WRITE_ABORT_MSG . A megjelenített üzenet a használt futtatókörnyezet verziójától függ. A Visual C++ legújabb verzióival készült alkalmazások esetében az üzenet a következőhöz hasonló:
R6010 – megszakítás() lett meghívva
A C futtatókörnyezeti kódtár korábbi verzióiban ez az üzenet jelenik meg:
Ez az alkalmazás azt kérte a futtatókörnyezettől, hogy szokatlan módon állítsa le. További információért forduljon az alkalmazás támogatási csapatához.
Ha a program hibakeresési módban van lefordítva, az üzenetmező megjeleníti a megszakítás, az újrapróbálkozás vagy a mellőzés beállításait. Ha a felhasználó a megszakítást választja, a program azonnal leáll, és egy 3-os kilépési kódot ad vissza. Ha a felhasználó az Újrapróbálkozást választja, a rendszer meghív egy hibakeresőt az igény szerint végzett hibakereséshez, ha elérhető. Ha a felhasználó a Mellőzés lehetőséget választja, abort folytatja a normál feldolgozást.
A kiskereskedelmi és hibakeresési buildekben is ellenőrizze, abort hogy be van-e állítva egy megszakított jelkezelő. Ha egy nem alapértelmezett jelkezelő van beállítva, abort hívja a következőt raise(SIGABRT): . A függvény használatával signal társíthat megszakított jelkezelő függvényt a SIGABRT jelhez. Egyéni műveleteket hajthat végre , például törölheti az erőforrásokat vagy naplóadatokat, és saját hibakóddal leállíthatja az alkalmazást a kezelőfüggvényben. Ha nincs definiálva egyéni jelkezelő, abort akkor nem emeli ki a SIGABRT jelet.
Az asztali vagy konzolalkalmazások abort nem hibakeresési buildjeiben alapértelmezés szerint meghívja a Windows hibajelentési szolgáltatás mechanizmusát (korábbi nevén Dr. Watson), hogy jelentse a hibákat a Microsoftnak. Ez a viselkedés a jelölő meghívásával _set_abort_behavior és beállításával vagy maszkolásával _CALL_REPORTFAULT engedélyezhető vagy letiltható. Ha a jelző be van állítva, a Windows megjelenít egy üzenetmezőt, amely a következőhöz hasonló szöveget tartalmaz: "Probléma miatt a program nem működik megfelelően". A felhasználó dönthet úgy, hogy hibakeresőt hív meg egy Hibakeresés gombbal, vagy a Program bezárása gombra kattintva leállítja az alkalmazást egy, az operációs rendszer által definiált hibakóddal.
Ha a Windows hibajelentés-kezelője nem hívható meg, akkor abort a _exit 3. kilépési kóddal állítsa le a folyamatot, és visszaadja a vezérlést a szülőfolyamatnak vagy az operációs rendszernek.
_exit nem üríti ki a streampuffereket, és nem végez feldolgozást atexit/_onexit .
A Windows kompatibilitási okokból hívás esetén abort_exitmeghívhatja a Windows ExitProcess API-t, amely lehetővé teszi a DLL-megszakítási rutinok futtatását. A destruktorok nem futtathatók a végrehajtható fájlban, de ugyanez nem feltétlenül igaz a végrehajtható folyamatterületre betöltött DLL-ekhez. Ez a viselkedés nem felel meg szigorúan a C++ szabványnak. Ha azonnal le szeretne mondani egy folyamatot, beleértve a DLL-eket is, használja a Windows TerminateProcess API-t. Regisztrálhat egy megszakított jelkezelőt is, amely szabványos viselkedésre hív meg TerminateProcess . A windowsos kompatibilitás bizonyos költségekkel járhat.
A CRT-hibakeresésről további információt a CRT hibakeresési technikáiban talál.
Microsoft-specifikus végpont
Alapértelmezés szerint ennek a függvénynek a globális állapota hatóköre az alkalmazásra terjed ki. A módosításhoz tekintse meg a globális állapotot a CRT-ben.
Requirements
| Rutin | Kötelező fejléc |
|---|---|
abort |
<process.h> vagy <stdlib.h> |
Example
A következő program megpróbál megnyitni egy fájlt, és leáll, ha a kísérlet meghiúsul.
// crt_abort.c
// compile with: /TC
// This program demonstrates the use of
// the abort function by attempting to open a file
// and aborts if the attempt fails.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *stream = NULL;
errno_t err = 0;
err = fopen_s(&stream, "NOSUCHF.ILE", "r" );
if ((err != 0) || (stream == NULL))
{
perror( "File could not be opened" );
abort();
}
else
{
fclose( stream );
}
}
File could not be opened: No such file or directory
Lásd még
Használva abort
abort függvény
Folyamat- és környezetvezérlés
_exec, _wexec függvények
exit, , _Exit_exit
raise
signal
_spawn, _wspawn függvények
_DEBUG
_set_abort_behavior