socketcall(2)

الاسم
socketcall - استدعاءات نظام المقابس

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

موجز
#include <linux/net.h>        /* Definition of SYS_* constants */
#include <sys/syscall.h>      /* Definition of SYS_socketcall */
#include <unistd.h>

int syscall(SYS_socketcall, int call, unsigned long *args);

ملاحظة: لا توفر glibc غلافًا لـ socketcall()، مما يستلزم استخدام syscall(2).

الوصف
socketcall() هي نقطة دخول نواة مشتركة لاستدعاءات نظام المقابس. يحدد call دالة المقبس التي سيتم استدعاؤها. يشير args إلى كتلة تحتوي على الوسائط الفعلية، التي تُمرر إلى الاستدعاء المناسب.

يجب على برامج المستخدم استدعاء الدوال المناسبة بأسمائها المعتادة. يحتاج فقط منفذو المكتبة القياسية ومخترقو النواة إلى معرفة socketcall().

call | صفحة دليل
SYS_SOCKET | socket(2)
SYS_BIND | bind(2)
SYS_CONNECT | connect(2)
SYS_LISTEN | listen(2)
SYS_ACCEPT | accept(2)
SYS_GETSOCKNAME | getsockname(2)
SYS_GETPEERNAME | getpeername(2)
SYS_SOCKETPAIR | socketpair(2)
SYS_SEND | send(2)
SYS_RECV | recv(2)
SYS_SENDTO | sendto(2)
SYS_RECVFROM | recvfrom(2)
SYS_SHUTDOWN | shutdown(2)
SYS_SETSOCKOPT | setsockopt(2)
SYS_GETSOCKOPT | getsockopt(2)
SYS_SENDMSG | sendmsg(2)
SYS_RECVMSG | recvmsg(2)
SYS_ACCEPT4 | accept4(2)
SYS_RECVMMSG | recvmmsg(2)
SYS_SENDMMSG | sendmmsg(2)

الإصدارات
في بعض البنى —مثل x86-64 وARM— لا يوجد استدعاء نظام socketcall()؛ بدلاً من ذلك، تُنفذ socket(2) وaccept(2) وbind(2) وما إلى ذلك كاستدعاءات نظام منفصلة.

المعايير
لينكس.

في x86-32، كانت socketcall() تاريخيًا نقطة الدخول الوحيدة لواجهة برمجة تطبيقات المقابس. ومع ذلك، بدءًا من لينكس 4.3، تُوفر استدعاءات نظام مباشرة على x86-32 لواجهة برمجة تطبيقات المقابس. يُسهل هذا إنشاء مرشحات seccomp(2) التي تصفي استدعاءات نظام المقابس (للثنائيات الجديدة في مساحة المستخدم التي تُجمع لاستخدام نقاط الدخول الجديدة) ويوفر أيضًا تحسينًا صغيرًا جدًا في الأداء.

انظر أيضًا
accept(2)، bind(2)، connect(2)، getpeername(2)، getsockname(2)، getsockopt(2)، listen(2)، recv(2)، recvfrom(2)، recvmsg(2)، send(2)، sendmsg(2)، sendto(2)، setsockopt(2)، shutdown(2)، socket(2)، socketpair(2)

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

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

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