المتغيرات
فضاءات التسمية
أفعال

exit

من cppreference.com
< c‏ | program
معرفة في ملف <stdlib.h>
void exit(int exit_code );
(حتى C11)
_Noreturn void exit(int exit_code );
(منذ C11)

تتسبب في اغلاق عادي للبرنامج.

هذه الخطوات يتم تنفيذها عند حدوث اغلاق عادي للبرنامج:

  • تنفيذ الدوال التي مررت إلى atexit‎ بعكس الترتيب التي تم تسجيلها به.
  • يتم إخلاء (fflush‎) وغلق (fclose‎) جميع تيارات السي المفتوحة (أي جميع الموارد المشار إليها بـ FILE*‎)
  • يتم تسليم الزمام إلى بيئة التشغيل. في حالة أن ‎exit_code‎ تساوي الصفر أو EXIT_SUCCESS‎ يتم إرجاع قيمة تدل على أن اغلاق البرنامج تم بعد نجاحه. في حالة كونه بـ EXIT_FAILURE‎ يتم إرجاع قيمة تدل على الفشل.

محتويات

[تعديل]ملحوظات

الدوال المسجلة بـ at_quick_exit‎ لا يتم استدعائها.

السلوك غير معرف في حالة أن برنامج يستدعي ‎exit‎ أكثر من مرة أو في حالة استدعائه لـ ‎exit‎ و quick_exit‎.

السلوك أيضا غير معرف في حالة إنتهاء إحدى الدوال المسجلة بـ atexit‎ بـ longjmp‎.

إنتهاء دالة الـ main سواء عن طريق الأمر return أو بالوصول إلى نهاية الدالة يؤدي إلى استدعاء تلقائي للدالة ‎exit()‎. يتم استخدام قيمة أمر الـ return (أو صفر في حالة الـ return الضمني) كـ ‎exit_code‎ عند استدعاء الدالة.

[تعديل]المعطيات

exit_code - رقم يعبر عن حالة البرنامج وقت الإغلاق.

[تعديل] القيمة المُرجعة

(لا شيء)

[تعديل]مثال

#include <stdio.h>#include <stdlib.h>   int main(void){ FILE *fp = fopen("data.txt","r");if(fp == NULL){ fprintf(stderr, "error opening file data.txt in function main()\n"); exit(1);} fclose(fp); printf("Normal Return\n");}

الخرج:

error opening file data.txt in function main()

[تعديل]أنظر أيضا

تتسبب في إجهاض غير عادي للبرنامج
(دالة)[edit]
تسجل دالة يتم استدعائها تلو استدعاء exit()‎
(دالة)[edit]
إنهاء عادي للبرنامج دون إخلاء كامل للموارد
(دالة)[edit]
close