.\" -*- coding: UTF-8 -*- .\" Copyright 1993, Rickard E. Faith .\" Copyright 2005-2007, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" .\" Other portions are from the 6.9 (Berkeley) 3/10/91 man page: .\" .\" Copyright 1983, The Regents of the University of California. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH bind 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم bind \- ربط اسم بمقبس .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint bind(int \fP\fIsockfd\fP\fB, const struct sockaddr *\fP\fIaddr\fP\fB,\fP \fB socklen_t \fP\fIaddrlen\fP\fB);\fP .fi .SH الوصف عند إنشاء مقبس باستخدام \fBsocket\fP(2)، فإنه يوجد في فضاء أسماء (عائلة عناوين) ولكن لا يوجد عنوان مخصص له. تقوم \fBbind\fP() بتعيين العنوان المحدد بواسطة \fIaddr\fP للمقبس المشار إليه بواصف الملف \fIsockfd\fP. يحدد \fIaddrlen\fP الحجم بالبايت لبنية العنوان المشار إليها بواسطة \fIaddr\fP. تقليدياً، تسمى هذه العملية \[lq]تعيين اسم لمقبس\[rq]. .P من الضروري عادةً تعيين عنوان محلي باستخدام \fBbind\fP() قبل أن يتمكن مقبس \fBSOCK_STREAM\fP من استقبال الاتصالات (انظر \fBaccept\fP(2)). .P تختلف القواعد المستخدمة في ربط الأسماء بين عائلات العناوين. راجع الإدخالات اليدوية في القسم 7 للحصول على معلومات مفصلة. بالنسبة لـ \fBAF_INET\fP، انظر \fBip\fP(7)؛ لـ \fBAF_INET6\fP، انظر \fBipv6\fP(7)؛ لـ \fBAF_UNIX\fP، انظر \fBunix\fP(7)؛ لـ \fBAF_APPLETALK\fP، انظر \fBddp\fP(7)؛ لـ \fBAF_PACKET\fP، انظر \fBpacket\fP(7)؛ لـ \fBAF_X25\fP، انظر \fBx25\fP(7)؛ ولـ \fBAF_NETLINK\fP، انظر \fBnetlink\fP(7). .P ستعتمد البنية الفعلية الممررة لوسيطة \fIaddr\fP على عائلة العنوان. تُعرف بنية \fIsockaddr\fP بشيء مثل: .P .in +4n .EX struct sockaddr { sa_family_t sa_family; char sa_data[14]; } .EE .in .P الغرض الوحيد من هذه البنية هو تحويل مؤشر البنية الممرر في \fIaddr\fP لتجنب تحذيرات المترجم. انظر الأمثلة أدناه. .SH "قيمة الإرجاع" عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEACCES\fP .\" e.g., privileged port in AF_INET domain العنوان محمي، والمستخدم ليس المستخدم الفائق. .TP \fBEADDRINUSE\fP العنوان المعطى قيد الاستخدام بالفعل. .TP \fBEADDRINUSE\fP (مقابس نطاق الإنترنت) تم تحديد رقم المنفذ كصفر في بنية عنوان المقبس، ولكن عند محاولة الربط بمنفذ مؤقت، تبين أن جميع أرقام المنافذ في نطاق المنافذ المؤقتة قيد الاستخدام حالياً. انظر مناقشة \fI/proc/sys/net/ipv4/ip_local_port_range\fP \fBip\fP(7). .TP \fBEBADF\fP \fIsockfd\fP ليس واصف ملف صالحاً. .TP \fBEINVAL\fP .\" This may change in the future: see .\" .I linux/unix/sock.c for details. المقبس مربوط بالفعل بعنوان. .TP \fBEINVAL\fP \fIaddrlen\fP خاطئ، أو \fIaddr\fP ليس عنواناً صالحاً لنطاق هذا المقبس. .TP \fBENOTSOCK\fP واصف الملف \fIsockfd\fP لا يشير إلى مقبس. .TP \fBEADDRNOTAVAIL\fP تم طلب واجهة غير موجودة أو العنوان المطلوب ليس محلياً. .P الأخطاء التالية خاصة بمقابس نطاق UNIX (\fBAF_UNIX\fP): .TP \fBEACCES\fP أُذونات البحث مرفوضة في أحد مكونات بادئة المسار. (انظر أيضًا \fBpath_resolution\fP(7).) .TP \fBEFAULT\fP يشير \fIaddr\fP إلى خارج فضاء العناوين القابل للوصول من قبل المستخدم. .TP \fBELOOP\fP تمت مصادفة عدد كبير جداً من الروابط الرمزية أثناء حل \fIaddr\fP. .TP \fBENAMETOOLONG\fP \fIaddr\fP طويل جداً. .TP \fBENOENT\fP مكون في بادئة الدليل لاسم مسار المقبس غير موجود. .TP \fBENOMEM\fP ذاكرة النواة المتوفرة غير كافية. .TP \fBENOTDIR\fP أحد مكونات بادئة المسار ليس دليلاً. .TP \fBEROFS\fP سيكون عقدة المقبس موجودة على نظام ملفات للقراءة فقط. .P قد تتولد أخطاء أخرى بواسطة وحدات البروتوكول الأساسية. .SH الإصدارات يجب أن تضمن البرامج القابلة للنقل أن \fIaddr.sun_path\fP هي سلسلة منتهية بـ null لمقابس \fBAF_UNIX\fP. .SH المعايير POSIX.1\-2024. .SH التاريخ .\" SVr4 documents an additional .\" .B ENOSR .\" general error condition, and .\" additional .\" .B EIO .\" and .\" .B EISDIR .\" UNIX-domain error conditions. POSIX.1\-2001،‏ SVr4،‏ 4.2BSD. .SH العلل .\" FIXME Document transparent proxy options خيارات الوكيل الشفاف غير موصوفة. .SH أمثلة يمكن العثور على مثال لاستخدام \fBbind\fP() مع مقابس نطاق الإنترنت في \fBgetaddrinfo\fP(3). .P .\" listen.7 refers to this example. .\" accept.7 refers to this example. .\" unix.7 refers to this example. المثال التالي يوضح كيفية ربط مقبس دفق في نطاق UNIX (\fBAF_UNIX\fP)، وقبول الاتصالات: .P .\" SRC BEGIN (bind.c) .EX #include #include #include #include #include #include \& #define MY_SOCK_PATH "/somepath" #define LISTEN_BACKLOG 50 \& int main(void) { int sfd, cfd; socklen_t peer_addr_size; struct sockaddr_un my_addr, peer_addr; \& sfd = socket(AF_UNIX, SOCK_STREAM, 0); if (sfd == \-1) err(EXIT_FAILURE, "socket"); \& memset(&my_addr, 0, sizeof(my_addr)); my_addr.sun_family = AF_UNIX; strncpy(my_addr.sun_path, MY_SOCK_PATH, sizeof(my_addr.sun_path) \- 1); \& if (bind(sfd, (struct sockaddr *) &my_addr, sizeof(my_addr)) == \-1) err(EXIT_FAILURE, "bind"); \& if (listen(sfd, LISTEN_BACKLOG) == \-1) err(EXIT_FAILURE, "listen"); \& /* الآن يمكننا قبول الاتصالات الواردة واحدة تلو الأخرى باستخدام accept(2). */ \& peer_addr_size = sizeof(peer_addr); cfd = accept(sfd, (struct sockaddr *) &peer_addr, &peer_addr_size); if (cfd == \-1) err(EXIT_FAILURE, "accept"); \& /* كود للتعامل مع الاتصال(ات) الواردة... */ \& if (close(sfd) == \-1) err(EXIT_FAILURE, "close"); \& if (unlink(MY_SOCK_PATH) == \-1) err(EXIT_FAILURE, "unlink"); } .EE .\" SRC END .SH "انظر أيضًا" \fBaccept\fP(2), \fBconnect\fP(2), \fBgetsockname\fP(2), \fBlisten\fP(2), \fBsocket\fP(2), \fBgetaddrinfo\fP(3), \fBgetifaddrs\fP(3), \fBip\fP(7), \fBipv6\fP(7), \fBpath_resolution\fP(7), \fBsocket\fP(7), \fBunix\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .