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

atexit

من cppreference.com
< c‏ | program
معرفة في ملف <stdlib.h>
int atexit( void (*func)() );

تقوم بتسجيل الدالة المشار إليها بـ ‎func‎ في قائمة الدوال التي يتم استدعائها عند النهاية العادية للبرنامج (إما نتيجة استدعاء exit()‎ أو الـ return في ‎main()‎‎). الدوال المسجلة سيتم استدعائها بعكس الترتيب التي تم تسجيلها به أي أن آخر الدوال تسجيلا أولها في الاستدعاء.

يمكن تسجيل نفس الدالة أكثر من مرة.

الدالة ‎atexit‎ تقوم بالإحتياطات اللازمة لتفادي حالات التعارض عند استدعائها بالتوازي أي أنها دالة thread-safe.

يضمن المعيار أنه يمكن تسجيل 32 دالة على الأقل. يختلف الحد الاقصى للدوال من نظام لآخر.


محتويات

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

func - مؤشر على دالة يتم استدعائها وقت الانهاء العادي للبرنامج

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

0 عند نجاح التنفيذ. قيمة عدا الصفر عند الفشل.

[تعديل] مثال

#include <stdlib.h>
#include <stdio.h>
 
void f1()
{
    puts("pushed first");
}
 
void f2()
{
    puts("pushed second");
}
 
int main(void)
{
    atexit(f1);
    atexit(f2);
}

الخرج:

pushed second
pushed first

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

تسجل دالة يتم استدعائها تلو استدعاء quick_exit
(دالة) [edit]