.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1999, Andries E. Brouwer .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH realpath 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم realpath \- إرجاع مسار المُطلق المُقنن .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP \fB#include \fP .P \fBchar *realpath(const char *restrict \fP\fIpath\fP\fB,\fP \fB char *restrict \fP\fIresolved_path\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBrealpath\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE .fi .SH الوصف توسع الدالة \fBrealpath\fP() كل الروابط الرمزية وتحل المراجع إلى \fI/./\fP و \fI/../\fP والمحارف الإضافية \[aq]/\[aq] في سلسلة المحارف المنتهية بصفر المُسماة بواسطة \fIpath\fP لإنتاج مسار مُطلق مُقنن. يُخزَّن المسار الناتج كسلسلة محارف منتهية بصفر، حتى حد أقصى \fBPATH_MAX\fP بايت، في المخزن المؤقت المشار إليه بواسطة \fIresolved_path\fP. لن يحتوي المسار الناتج على رابط رمزي أو مكونات \fI/./\fP أو \fI/../\fP. .P .\" Even if we use resolved_path == NULL, then realpath() will still .\" return ENAMETOOLONG if the resolved pathname would exceed PATH_MAX .\" bytes -- MTK, Dec 04 إذا حُدد \fIresolved_path\fP كـ NULL، فإن \fBrealpath\fP() تستخدم \fBmalloc\fP(3) لتخصيص مخزن مؤقت يصل إلى \fBPATH_MAX\fP بايت لحمل اسم المسار المُحل، وتُعيد مؤشرًا إلى هذا المخزن. يجب على المُستدعي تحرير هذا المخزن باستخدام \fBfree\fP(3). .SH "قيمة الإرجاع" إذا لم يكن هناك خطأ، تُعيد \fBrealpath\fP() مؤشرًا إلى \fIresolved_path\fP. .P وإلا، تُعيد NULL، وتكون محتويات المصفوفة \fIresolved_path\fP غير مُعرفة، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEACCES\fP رُفض إذن القراءة أو البحث لمكون من بادئة المسار. .TP \fBEINVAL\fP .\" (In libc5 this would just cause a segfault.) \fIpath\fP هو NULL. (قبل glibc 2.3، يُعاد هذا الخطأ أيضًا إذا كان \fIresolved_path\fP هو NULL.) .TP \fBEIO\fP حدث خطأ إدخال/إخراج أثناء القراءة من نظام الملفات. .TP \fBELOOP\fP صودفت روابط رمزية كثيرة جدًا عند ترجمة اسم المسار. .TP \fBENAMETOOLONG\fP تجاوز مكون من اسم المسار \fBNAME_MAX\fP محرفًا، أو تجاوز اسم المسار بالكامل \fBPATH_MAX\fP محرفًا. .TP \fBENOENT\fP الملف المسمى غير موجود. .TP \fBENOMEM\fP نفدت الذاكرة. .TP \fBENOTDIR\fP أحد مكونات بادئة المسار ليس دليلاً. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBrealpath\fP() T} سلامة الخيوط MT\-Safe .TE .SH الإصدارات .SS "امتدادات جنو" إذا فشلت الاستدعاء مع \fBEACCES\fP أو \fBENOENT\fP وكان \fIresolved_path\fP ليس NULL، فإن بادئة \fIpath\fP غير القابلة للقراءة أو غير الموجودة تُعاد في \fIresolved_path\fP. .SH المعايير POSIX.1\-2008. .SH التاريخ 4.4BSD، POSIX.1\-2001، Solaris. .P ينص POSIX.1\-2001 على أن السلوك إذا كان \fIresolved_path\fP هو NULL مُعرف بالتطبيق. يحدد POSIX.1\-2008 السلوك الموصوف في هذه الصفحة. .P في 4.4BSD و Solaris، الحد الأقصى لطول اسم المسار هو \fBMAXPATHLEN\fP (الموجود في \fI\fP). يفرض SUSv2 \fBPATH_MAX\fP و \fBNAME_MAX\fP، كما هو موجود في \fI\fP أو المقدم بواسطة الدالة \fBpathconf\fP(3). سيكون مقطع مصدر نموذجي .P .in +4n .EX #ifdef PATH_MAX path_max = PATH_MAX; #else path_max = pathconf(path, _PC_PATH_MAX); if (path_max <= 0) path_max = 4096; #endif .EE .in .P .\".P .\" 2012-05-05, According to Casper Dik, the statement about .\" Solaris was not true at least as far back as 1997, and .\" may never have been true. .\" .\" The 4.4BSD, Linux and SUSv2 versions always return an absolute .\" pathname. .\" Solaris may return a relative pathname when the .\" .I path .\" argument is relative. .\" The prototype of .\" .BR realpath () .\" is given in \f[I]\f[] in libc4 and libc5, .\" but in \f[I]\f[] everywhere else. (لكن انظر قسم الأخطاء.) .SH العلل .\" .P .\" The libc4 and libc5 implementation contained a buffer overflow .\" (fixed in libc-5.4.13). .\" Thus, set-user-ID programs like .\" .BR mount (8) .\" needed a private version. النسخة القياسية POSIX.1\-2001 من هذه الدالة معطوبة بالتصميم، لأنه من المستحيل تحديد حجم مناسب للمخزن المؤقت للإخراج \fIresolved_path\fP. وفقًا لـ POSIX.1\-2001، يكفي مخزن مؤقت بحجم \fBPATH_MAX\fP، لكن \fBPATH_MAX\fP لا يلزم أن يكون ثابتًا مُعرفًا، وقد يلزم الحصول عليه باستخدام \fBpathconf\fP(3). وطلب \fBpathconf\fP(3) لا يساعد حقًا، لأنه من ناحية يحذر POSIX من أن نتيجة \fBpathconf\fP(3) قد تكون ضخمة وغير مناسبة لتخصيص الذاكرة بواسطة malloc، ومن ناحية أخرى قد تُعيد \fBpathconf\fP(3) \-1 للإشارة إلى أن \fBPATH_MAX\fP غير محدود. تتيح ميزة \fIresolved_path\ ==\ NULL\fP، غير المُوحدة في POSIX.1\-2001 ولكن المُوحدة في POSIX.1\-2008، تجنب مشكلة التصميم هذه. .SH "انظر أيضًا" \fBrealpath\fP(1)، \fBreadlink\fP(2)، \fBcanonicalize_file_name\fP(3)، \fBgetcwd\fP(3)، \fBpathconf\fP(3)، \fBsysconf\fP(3) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .