_set_abort_behavior
Bir program anormal şekilde sonlandırıldığında gerçekleştirilecek eylemi belirtir.
Not
Test veya hata ayıklama senaryoları dışında bir Microsoft Store uygulamasını kapatmak için işlevini kullanmayın abort
. Microsoft Store ilkelerine göre Bir Mağaza uygulamasını kapatmaya yönelik programlı veya kullanıcı arabirimi yöntemlerine izin verilmez. Daha fazla bilgi için bkz . UWP uygulama yaşam döngüsü.
Sözdizimi
unsigned int _set_abort_behavior(
unsigned int flags,
unsigned int mask
);
Parametreler
flags
Bayrakların abort
yeni değeri.
mask
Ayarlanacağı abort
bayrak bitleri için maske.
Dönüş değeri
Bayrakların eski değeri.
Açıklamalar
İki abort
bayrak vardır: _WRITE_ABORT_MSG
ve _CALL_REPORTFAULT
. _WRITE_ABORT_MSG
program anormal şekilde sonlandırıldığında yararlı bir metin iletisinin yazdırılıp yazdırılmayacağını belirler. İleti, uygulamanın işlevini çağırdığını abort
belirtir. Varsayılan davranış, iletiyi yazdırmaktır. _CALL_REPORTFAULT
ayarlanırsa, çağrıldığında abort
hataları Microsoft'a bildirmek için Windows Hata Bildirimi Hizmeti mekanizmasını (eski adıyla Dr. Watson) çağırır. Varsayılan olarak kilitlenme dökümü raporlaması DEBUG olmayan derlemelerde etkinleştirilir. Windows hata raporlama işleyicisi çağrılmazsa, abort
3. çıkış koduyla işlemi sonlandırmak için çağrılar _exit
ve denetimi üst işleme veya işletim sistemine döndürür. _exit
akış arabelleklerini temizlemez veya işleme yapmaz atexit
/_onexit
.
Windows uyumluluğu nedenleriyle, çağrısı _exit
yapıldığında abort
Windows ExitProcess
API'sini çağırabilir ve bu da DLL sonlandırma yordamlarının çalışmasına izin verir. Yıkıcılar yürütülebilir dosyada çalıştırılmaz, ancak yürütülebilir dosyanın işlem alanına yüklenen DLL'ler için de aynı durum geçerli olmayabilir. Bu davranış C++ standardına kesinlikle uymaz. DLL'ler de dahil olmak üzere bir işlemi hemen sonlandırmak için Windows TerminateProcess
API'sini kullanın. Standart uyumlu davranış için çağıran TerminateProcess
bir iptal sinyali işleyicisi de kaydedebilirsiniz. Uyumlu davranış, Windows uyumluluğunda bir maliyete neden olabilir.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bunu değiştirmek için bkz . CRT'de Genel durum.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_set_abort_behavior |
<stdlib.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// crt_set_abort_behavior.c
// compile with: /TC
#include <stdlib.h>
int main()
{
printf("Suppressing the abort message. If successful, this message"
" will be the only output.\n");
// Suppress the abort message
_set_abort_behavior( 0, _WRITE_ABORT_MSG);
abort();
}
Suppressing the abort message. If successful, this message will be the only output.