_set_abort_behavior
Menentukan tindakan yang akan diambil ketika program dihentikan secara abnorrmal.
Catatan
Jangan gunakan abort
fungsi untuk mematikan aplikasi Microsoft Store, kecuali dalam skenario pengujian atau penelusuran kesalahan. Cara terprogram atau UI untuk menutup aplikasi Store tidak diizinkan sesuai dengan kebijakan Microsoft Store. Untuk informasi selengkapnya, lihat Siklus hidup aplikasi UWP.
Sintaks
unsigned int _set_abort_behavior(
unsigned int flags,
unsigned int mask
);
Parameter
flags
Nilai abort
baru bendera.
mask
Masking untuk abort
bit bendera yang akan diatur.
Nilai hasil
Nilai lama bendera.
Keterangan
Ada dua abort
bendera: _WRITE_ABORT_MSG
dan _CALL_REPORTFAULT
. _WRITE_ABORT_MSG
menentukan apakah pesan teks bermanfaat dicetak ketika program dihentikan secara tidak normal. Pesan menyatakan bahwa aplikasi telah memanggil abort
fungsi . Perilaku defaultnya adalah mencetak pesan. _CALL_REPORTFAULT
, jika diatur, memanggil mekanisme layanan Pelaporan Galat Windows (sebelumnya dikenal sebagai Dr. Watson) untuk melaporkan kegagalan ke Microsoft ketika abort
dipanggil. Secara default, pelaporan crash dump diaktifkan dalam build non-DEBUG. Jika handler pelaporan kesalahan Windows tidak dipanggil, maka abort
panggilan _exit
untuk mengakhiri proses dengan kode keluar 3 dan mengembalikan kontrol ke proses induk atau sistem operasi. _exit
tidak membersihkan buffer aliran atau melakukan atexit
/_onexit
pemrosesan.
Untuk alasan kompatibilitas Windows, ketika abort
panggilan _exit
, itu dapat memanggil WINDOWS ExitProcess
API, yang pada gilirannya memungkinkan rutinitas penghentian DLL berjalan. Destructor tidak dijalankan dalam executable, tetapi hal yang sama mungkin tidak benar dari DLL yang dimuat dalam ruang proses yang dapat dieksekusi. Perilaku ini tidak sepenuhnya sesuai dengan standar C++. Untuk segera mengakhiri proses termasuk DLL apa pun, gunakan WINDOWS TerminateProcess
API. Anda juga dapat mendaftarkan handler sinyal pembatalan yang memanggil TerminateProcess
perilaku yang mematuhi standar. Perilaku yang sesuai mungkin dikenakan biaya dalam kompatibilitas Windows.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubahnya, lihat Status global di CRT.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_set_abort_behavior |
<stdlib.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk