abort(3)

الاسم
abort - سبب إنهاء العملية غير الطبيعي

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <stdlib.h>

[[noreturn]] void abort(void);

الوصف
الدالة abort() تزيل أولا حظر إشارة SIGABRT، ثم ترفع تلك الإشارة للعملية المستدعية (كما لو كانت raise(3) قد استُدعيت). يؤدي هذا إلى إنهاء العملية غير الطبيعي ما لم تُلتقط إشارة SIGABRT ولا يعود معالج الإشارة (انظر longjmp(3)).

إذا جُهلت إشارة SIGABRT، أو التُقطت بواسطة معالج يعود، فإن الدالة abort() ستظل تنهي العملية. تفعل ذلك باستعادة التصرف المبدئي لـ SIGABRT ثم رفع الإشارة مرة ثانية.

كما في حالات أخرى من الإنهاء غير الطبيعي، الدوال المسجلة مع atexit(3) و on_exit(3) لا تُستدعى.

قيمة الإرجاع
الدالة abort() لا تعود أبدا.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
abort() | سلامة الخيوط | MT-Safe

المعايير
C11, POSIX.1-2008.

التاريخ
SVr4, POSIX.1-2001, 4.3BSD, C89.

حتى glibc 2.26، إذا تسببت الدالة abort() في إنهاء العملية، أُغلقت جميع التدفقات المفتوحة وفُرغت (كما في fclose(3)). لكن، في بعض الحالات قد يؤدي هذا إلى أقفال ميتة وإفساد البيانات. لذلك، بدءا من glibc 2.27، تنهي abort() العملية دون تفريغ التدفقات. يسمح POSIX.1 بأي من السلوكين المحتملين، قائلا إن abort() "قد تتضمن محاولة لتنفيذ fclose() على جميع التدفقات المفتوحة".

انظر أيضًا
gdb(1), sigaction(2), assert(3), exit(3), longjmp(3), raise(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.