.\" -*- coding: UTF-8 -*- .\" Copyright 1999, Andi Kleen .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH rtnetlink 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم rtnetlink \- وحدات ماكرو لمعالجة رسائل rtnetlink .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP \fB#include \fP \fB#include \fP \fB#include \fP .P \fBrtnetlink_socket = socket(AF_NETLINK, int \fP\fIsocket_type\fP\fB, NETLINK_ROUTE);\fP .P \fBint RTA_OK(struct rtattr *\fP\fIrta\fP\fB, int \fP\fIsize\fP\fB);\fP .P \fBvoid *RTA_DATA(struct rtattr *\fP\fIrta\fP\fB);\fP \fBunsigned int RTA_PAYLOAD(struct rtattr *\fP\fIrta\fP\fB);\fP .P \fBstruct rtattr *RTA_NEXT(struct rtattr *\fP\fIrta\fP\fB, unsigned int \fP\fIsize\fP\fB);\fP .P \fBunsigned int RTA_LENGTH(unsigned int \fP\fIsize\fP\fB);\fP \fBunsigned int RTA_SPACE(unsigned int \fP\fIsize\fP\fB);\fP .fi .SH الوصف جميع رسائل \fBrtnetlink\fP(7) تتكون من رأس رسالة \fBnetlink\fP(7) وسمات ملحقة. يجب معالجة السمات فقط باستخدام وحدات الماكرو المقدمة هنا. .P \fBRTA_OK(\fP\fIrta\fP\fB, \fP\fIsize\fP\fB)\fP تُرجع صحيحًا إذا كان \fIrta\fP يشير إلى سمة توجيه صالحة؛ \fIsize\fP هو الحجم الجاري للمخزن المؤقت للسمات. عندما لا يكون صحيحًا، يجب افتراض عدم وجود سمات أخرى في الرسالة، حتى لو كان \fIsize\fP غير صفري. .P \fBRTA_DATA(\fP\fIrta\fP\fB)\fP تُرجع مؤشرًا إلى بداية بيانات هذه السمة. .P \fBRTA_PAYLOAD(\fP\fIrta\fP\fB)\fP تُرجع حجم بيانات هذه السمة. .P \fBRTA_NEXT(\fP\fIrta\fP\fB, \fP\fIsize\fP\fB)\fP تحصل على السمة التالية بعد \fIrta\fP. استدعاء هذه الماكرو يُحدّث \fIsize\fP. يجب استخدام \fBRTA_OK\fP للتحقق من صحة المؤشر المُعاد. .P \fBRTA_LENGTH(\fP\fIsize\fP\fB)\fP تُرجع الحجم المطلوب لـ \fIsize\fP بايت من البيانات بالإضافة إلى الرأس. .P \fBRTA_SPACE(\fP\fIsize\fP\fB)\fP تُرجع مقدار المساحة المطلوبة في رسالة تحتوي على \fIsize\fP بايت من البيانات. .SH المعايير لينكس. .SH العلل صفحة الدليل هذه غير مكتملة. .SH أمثلة .\" FIXME . ? would be better to use libnetlink in the EXAMPLE code here إنشاء رسالة rtnetlink لتعيين MTU لجهاز: .P .in +4n .EX #include \& \&... \& struct { struct nlmsghdr nh; struct ifinfomsg if; char attrbuf[512]; } req; \& struct rtattr *rta; unsigned int mtu = 1000; \& int rtnetlink_sk = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE); \& memset(&req, 0, sizeof(req)); req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(req.if)); req.nh.nlmsg_flags = NLM_F_REQUEST; req.nh.nlmsg_type = RTM_NEWLINK; req.if.ifi_family = AF_UNSPEC; req.if.ifi_index = INTERFACE_INDEX; req.if.ifi_change = 0xffffffff; /* ??? */ rta = (struct rtattr *) ((char *) &req + NLMSG_ALIGN(req.nh.nlmsg_len)); rta\->rta_type = IFLA_MTU; rta\->rta_len = RTA_LENGTH(sizeof(mtu)); req.nh.nlmsg_len = NLMSG_ALIGN(req.nh.nlmsg_len) + RTA_LENGTH(sizeof(mtu)); memcpy(RTA_DATA(rta), &mtu, sizeof(mtu)); send(rtnetlink_sk, &req, req.nh.nlmsg_len, 0); .EE .in .SH "انظر أيضًا" \fBnetlink\fP(3), \fBnetlink\fP(7), \fBrtnetlink\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 .