_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

abort