Bagikan melalui


exit, _Exit, _exit

Menghentikan proses panggilan. Fungsi exit mengakhirinya setelah pembersihan; _exit dan _Exit segera mengakhirinya.

Catatan

Jangan gunakan metode ini untuk mematikan aplikasi Platform Windows Universal (UWP), 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. Untuk informasi selengkapnya tentang aplikasi UWP, lihat dokumentasi Platform Windows Universal.

Sintaks

void exit(
   int const status
);
void _Exit(
   int const status
);
void _exit(
   int const status
);

Parameter

status
Keluar dari kode status.

Keterangan

Fungsi exit, _Exit dan _exit menghentikan proses panggilan. Fungsi ini exit memanggil destruktor untuk objek thread-local, lalu memanggil—dalam urutan last-in-first-out (LIFO) —fungsi yang didaftarkan oleh atexit dan _onexit, lalu menghapus semua buffer file sebelum mengakhiri proses. Fungsi _Exit dan _exit menghentikan proses tanpa menghancurkan objek atau pemrosesan atexit atau _onexit fungsi lokal utas, dan tanpa menyiram buffer aliran.

exitMeskipun panggilan , _Exit dan _exit tidak mengembalikan nilai, nilai di status tersedia untuk lingkungan host atau proses panggilan tunggu, jika ada, setelah proses keluar. Biasanya, pemanggil mengatur status nilai ke 0 untuk menunjukkan keluar normal, atau ke beberapa nilai lain untuk menunjukkan kesalahan. Nilai status tersedia untuk perintah ERRORLEVEL batch sistem operasi dan diwakili oleh salah satu dari dua konstanta: EXIT_SUCCESS, yang mewakili nilai 0, atau EXIT_FAILURE, yang mewakili nilai 1.

Fungsi exit, , _exit_Exit, quick_exit, _cexit, dan _c_exit berulah sebagai berikut.

Function Deskripsi
exit Melakukan prosedur penghentian pustaka C lengkap, mengakhiri proses, dan menyediakan kode status yang disediakan ke lingkungan host.
_Exit Melakukan prosedur penghentian pustaka C minimal, mengakhiri proses, dan menyediakan kode status yang disediakan ke lingkungan host.
_exit Melakukan prosedur penghentian pustaka C minimal, mengakhiri proses, dan menyediakan kode status yang disediakan ke lingkungan host.
quick_exit Melakukan prosedur penghentian pustaka C cepat, mengakhiri proses, dan menyediakan kode status yang disediakan ke lingkungan host.
_cexit Melakukan prosedur penghentian pustaka C lengkap dan kembali ke pemanggil. Tidak mengakhiri proses.
_c_exit Melakukan prosedur penghentian pustaka C minimal dan kembali ke pemanggil. Tidak mengakhiri proses.

Saat Anda memanggil exitfungsi , _Exit atau _exit , destruktor untuk objek sementara atau otomatis apa pun yang ada pada saat panggilan tidak dipanggil. Objek otomatis adalah objek lokal non-statis yang ditentukan dalam fungsi. Objek sementara adalah objek yang dibuat oleh pengkompilasi, seperti nilai yang dikembalikan oleh panggilan fungsi. Untuk menghancurkan objek otomatis sebelum Anda memanggil exit, , _Exitatau _exit, secara eksplisit memanggil destruktor untuk objek, seperti yang ditunjukkan di sini:

void last_fn() {}
    struct SomeClass {} myInstance{};
    // ...
    myInstance.~SomeClass(); // explicit destructor call
    exit(0);
}

Jangan gunakan DLL_PROCESS_ATTACH untuk memanggil exit dari DllMain. Untuk keluar DLLMain dari fungsi, kembalikan FALSE dari DLL_PROCESS_ATTACH.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Function Header yang diperlukan
exit, _Exit, _exit <process.h> atau <stdlib.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_exit.c
// This program returns an exit code of 1. The
// error code could be tested in a batch file.

#include <stdlib.h>

int main( void )
{
   exit( 1 );
}

Baca juga

Kontrol proses dan lingkungan
abort
atexit
_cexit, _c_exit
_exec, _wexec fungsi
_onexit, _onexit_m
quick_exit
_spawn, _wspawn fungsi
system, _wsystem