atexit
من cppreference.com
<tbody>
</tbody>
| معرفة في ملف <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
أنظر أيضا
(C99) |
تسجل دالة يتم استدعائها تلو استدعاء quick_exit (دالة) |
مقالة مرجع C++ عن atexit
|