getsockopt(2)

الاسم
getsockopt, setsockopt - جلب وضبط الخيارات على المقابس

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

موجز
#include <sys/socket.h>

int getsockopt(socklen_t *restrict optlen;
               int sockfd, int level, int optname,
               void optval[_Nullable restrict *optlen],
               socklen_t *restrict optlen);
int setsockopt(socklen_t optlen;
               int sockfd, int level, int optname,
               const void optval[optlen],
               socklen_t optlen);

الوصف
getsockopt() وsetsockopt() يعالجان خيارات المقبس المشار إليه بواصف الملف sockfd. قد توجد الخيارات على مستويات بروتوكول متعددة؛ وهي موجودة دائمًا على أعلى مستوى مقبس.

عند معالجة خيارات المقبس، يجب تحديد المستوى الذي يوجد فيه الخيار واسم الخيار. لمعالجة الخيارات على مستوى واجهة برمجة تطبيقات المقابس، يُحدد level كـ SOL_SOCKET. لمعالجة الخيارات على أي مستوى آخر، يُقدم رقم بروتوكول البروتوكول المناسب الذي يتحكم في الخيار. على سبيل المثال، للإشارة إلى أن خيارًا ما سيُفسر بواسطة بروتوكول TCP، يجب ضبط level على رقم بروتوكول TCP؛ انظر getprotoent(3).

الوسيطان optval وoptlen يُستخدمان للوصول إلى قيم الخيارات لـ setsockopt(). بالنسبة لـ getsockopt()، يُحددان مخزنًا مؤقتًا تُعاد فيه قيمة الخيار (الخيارات) المطلوبة. بالنسبة لـ getsockopt()، optlen هو وسيطة قيمة-نتيجة، تحتوي مبدئيًا على حجم المخزن المؤقت المشار إليه بواسطة optval، وتُعدل عند الإرجاع للإشارة إلى الحجم الفعلي للقيمة المُعادة. إذا لم تُقدم أو تُعد أي قيمة خيار، فقد يكون optval NULL.

Optname وأي خيارات محددة تُمرر غير مفسرة إلى وحدة البروتوكول المناسبة للتفسير. ملف التضمين <sys/socket.h> يحتوي على تعريفات لخيارات مستوى المقبس، الموصوفة أدناه. تختلف الخيارات على مستويات البروتوكول الأخرى في التنسيق والاسم؛ استشر الإدخالات المناسبة في القسم 4 من الدليل.

معظم خيارات مستوى المقبس تستخدم وسيطة int لـ optval. بالنسبة لـ setsockopt()، يجب أن تكون الوسيطة غير صفرية لتمكين خيار منطقي، أو صفر إذا كان الخيار سيُعطل.

لوصف خيارات المقبس المتاحة، انظر socket(7) وصفحات الدليل الخاصة بالبروتوكول المناسب.

قيمة الإرجاع
عند النجاح، يُعاد صفر للخيارات القياسية. عند الخطأ، يُعاد -1، ويُضبط errno للإشارة إلى الخطأ.

Netfilter يسمح للمبرمج بتعريف خيارات مقبس مخصصة مع معالجات مرتبطة؛ لمثل هذه الخيارات، قيمة الإرجاع عند النجاح هي القيمة التي يُرجعها المعالج.

الأخطاء

EBADF
    المعامل sockfd ليس واصف ملف صالح.

EFAULT
    العنوان المشار إليه بواسطة optval ليس في جزء صالح من مساحة عنوان العملية. بالنسبة لـ getsockopt()، قد يُعاد هذا الخطأ أيضًا إذا كان optlen ليس في جزء صالح من مساحة عنوان العملية.

EINVAL
    optlen غير صالح في setsockopt(). في بعض الحالات، قد يحدث هذا الخطأ أيضًا لقيمة غير صالحة في optval (مثل خيار IP_ADD_MEMBERSHIP الموصوف في ip(7)).

ENOPROTOOPT
    الخيار غير معروف على المستوى المشار إليه.

ENOTSOCK
    واصف الملف sockfd لا يشير إلى مقبس.

المعايير
POSIX.1-2024.

التاريخ
POSIX.1-2001, SVr4, 4.4BSD (ظهر أول مرة في 4.2BSD).

العلل
يجب معالجة العديد من خيارات المقبس على مستويات أدنى من النظام.

انظر أيضًا
ioctl(2), socket(2), getprotoent(3), protocols(5), ip(7), packet(7), socket(7), tcp(7), udp(7), unix(7)

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

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

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