Aracılığıyla paylaş


abort

Geçerli işlemi durdurur ve bir hata kodu döndürür.

Dekont

Test veya hata ayıklama senaryoları dışında bir Microsoft Store uygulamasını veya Evrensel Windows Platformu (UWP) uygulamasını kapatmak için bu yöntemi kullanmayın. 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

void abort( void );

Dönüş değeri

abort arama işlemine denetim döndürmez. Varsayılan olarak, durdurma sinyali işleyicisini denetler ve ayarlanmışsa yükseltir SIGABRT . Ardından abort geçerli işlemi sonlandırır ve üst işleme bir çıkış kodu döndürür.

Açıklamalar

Microsoft'a Özgü

Varsayılan olarak, bir uygulama hata ayıklama çalışma zamanı kitaplığıyla oluşturulduğunda, abort yordam oluşturulmadan önce SIGABRT bir hata iletisi görüntüler. Konsol modunda çalışan konsol uygulamaları için ileti adresine STDERRgönderilir. Pencere modunda çalışan Windows masaüstü uygulamaları ve konsol uygulamaları iletiyi bir ileti kutusunda görüntüler. İletiyi engellemek için bayrağını _WRITE_ABORT_MSG temizlemek için kullanın_set_abort_behavior. Görüntülenen ileti, kullanılan çalışma zamanı ortamının sürümüne bağlıdır. Visual C++'ın en son sürümleri kullanılarak oluşturulan uygulamalar için ileti şuna benzer:

R6010 - abort() çağrıldı

C çalışma zamanı kitaplığının önceki sürümlerinde bu ileti görüntüleniyordu:

Bu uygulama Çalışma Zamanı'nın olağan dışı bir şekilde sonlandırmasını istedi. Daha fazla bilgi için lütfen uygulamanın destek ekibine başvurun.

Program hata ayıklama modunda derlendiğinde, ileti kutusunda Durdur, Yeniden Dene veya Yoksay seçenekleri görüntülenir. Kullanıcı Durdur'u seçerse, program hemen sonlanır ve 3 çıkış kodu döndürür. Kullanıcı Yeniden Dene'yi seçerse, varsa tam zamanında hata ayıklama için bir hata ayıklayıcısı çağrılır. Kullanıcı Yoksay'ı seçerse normal abort işlemeye devam eder.

Hem perakende hem de hata ayıklama derlemelerinde iptal abort sinyali işleyicisi ayarlanıp ayarlanmadığını denetler. Varsayılan olmayan bir sinyal işleyicisi ayarlanırsa çağrısı abort yapılır raise(SIGABRT). signal Bir abort sinyal işleyicisi işlevini sinyalle ilişkilendirmek SIGABRT için işlevini kullanın. Kaynakları veya günlük bilgilerini temizleme gibi özel eylemler gerçekleştirebilir ve işleyici işlevinde kendi hata kodunuzla uygulamayı sonlandırabilirsiniz. Özel sinyal işleyici tanımlanmamışsa sinyali abort tetiklemiyor SIGABRT .

Varsayılan olarak, masaüstü veya konsol uygulamalarının hata ayıklamayan derlemelerinde hataları abort Microsoft'a bildirmek için Windows Hata Bildirimi Hizmeti mekanizmasını (eski adıyla Dr. Watson) çağırır. Bu davranış, bayrağı çağırıp _set_abort_behavior ayarlayarak veya maskeleyerek _CALL_REPORTFAULT etkinleştirilebilir veya devre dışı bırakılabilir. Bayrak ayarlandığında, Windows "Programın düzgün çalışmayı durdurmasına neden olan bir sorun" gibi bir metin içeren bir ileti kutusu görüntüler. Kullanıcı Hata Ayıkla düğmesiyle hata ayıklayıcı çağırmayı veya programı kapat düğmesini seçerek uygulamayı işletim sistemi tarafından tanımlanan bir hata koduyla sonlandırabilir.

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ı _exityapı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.

CRT hata ayıklama hakkında daha fazla bilgi için bkz . CRT hata ayıklama teknikleri.

Microsoft'a Özgü Son

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
abort <process.h> veya <stdlib.h>

Örnek

Aşağıdaki program bir dosyayı açmaya çalışır ve deneme başarısız olursa iptal eder.

// 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

Ayrıca bkz.

Kullan -arak abort
abort işlevi
İşlem ve ortam denetimi
_exec, _wexec işlevler
exit, _Exit, _exit
raise
signal
_spawn, _wspawn işlevler
_DEBUG
_set_abort_behavior