.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2000, Michael Kerrisk .\" 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 basename 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم basename, dirname \- تحليل مكونات مسار الملف .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBchar *dirname(char *\fP\fIpath\fP\fB);\fP \fBchar *basename(char *\fP\fIpath\fP\fB);\fP .fi .SH الوصف تحذير: هناك دالتان مختلفتان \fBbasename\fP()؛ انظر أدناه. .P الدالتان \fBdirname\fP() و \fBbasename\fP() تقسمان سلسلة مسار منتهية بصفر إلى مكونات الدليل واسم الملف. في الحالة المعتادة، تُرجع \fBdirname\fP() السلسلة حتى آخر \[aq]/\[aq] دون تضمينه، وتُرجع \fBbasename\fP() المكون الذي يلي آخر \[aq]/\[aq]. لا تُحسب أحرف \[aq]/\[aq] الزائدة كجزء من المسار. .P إذا لم يحتوي \fIpath\fP على شرطة مائلة، تُرجع \fBdirname\fP() السلسلة "." بينما تُرجع \fBbasename\fP() نسخة من \fIpath\fP. إذا كان \fIpath\fP هو السلسلة "/"، فترجع كل من \fBdirname\fP() و \fBbasename\fP() السلسلة "/". إذا كان \fIpath\fP مؤشرًا فارغًا أو يشير إلى سلسلة فارغة، فترجع كل من \fBdirname\fP() و \fBbasename\fP() السلسلة ".". .P يؤدي دمج السلسلة المُرجعة من \fBdirname\fP()، و"/"، والسلسلة المُرجعة من \fBbasename\fP() إلى الحصول على مسار كامل. .P قد تُعدل كل من \fBdirname\fP() و \fBbasename()\fP محتويات \fIpath\fP، لذا قد يكون من المستحسن تمرير نسخة عند استدعاء إحدى هاتين الدالتين. .P قد تُرجع هذه الدوال مؤشرات إلى ذاكرة مخصصة بشكل ثابت قد تُستبدل باستدعاءات لاحقة. بدلاً من ذلك، قد تُرجع مؤشرًا إلى جزء من \fIpath\fP، لذا يجب عدم تعديل أو تحرير السلسلة المشار إليها بواسطة \fIpath\fP حتى لا تكون هناك حاجة للمؤشر المُعاد من الدالة. .P القائمة التالية من الأمثلة (مأخوذة من SUSv2) تُظهر السلاسل المُرجعة من \fBdirname\fP() و \fBbasename\fP() لمسارات مختلفة: .RS .TS lb lb lb l l l l. المسار dirname basename /usr/lib /usr lib /usr/ / usr usr . usr / / / \&. . . \&.. . .. .TE .RE .SH "قيمة الإرجاع" كل من \fBdirname\fP() و \fBbasename\fP() تُرجعان مؤشرات إلى سلاسل منتهية بصفر. (لا تمرر هذه المؤشرات إلى \fBfree\fP(3).) .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBbasename\fP(), \fBdirname\fP() T} سلامة الخيوط MT\-Safe .TE .SH الإصدارات يوجد إصداران مختلفان من \fBbasename\fP() \- إصدار POSIX الموصوف أعلاه، وإصدار GNU الذي يُحصل عليه بعد .P .in +4n .EX \fB #define _GNU_SOURCE\fP /* See feature_test_macros(7) */ \fB#include \fP .EE .in .P إصدار GNU لا يعدّل وسيطه أبدًا، ويعيد السلسلة الفارغة عندما يحتوي \fIpath\fP على شرطة مائلة لاحقة، وبشكل خاص أيضًا عندما يكون "/". لا يوجد إصدار GNU لـ \fBdirname\fP(). .P مع glibc، يُحصل على إصدار POSIX من \fBbasename\fP() عند تضمين \fI\fP، وإلا يُحصل على إصدار GNU. .SH المعايير POSIX.1\-2008. .SH التاريخ POSIX.1\-2001. .SH العلل في تطبيق glibc، إصدارات POSIX لهذه الدوال تُعدّل وسيط \fIpath\fP، وتُحدث خطأ تجزئة عند استدعائها بسلسلة ثابتة مثل "/usr/". .P قبل glibc 2.2.1، إصدار glibc من \fBdirname\fP() لم يعالج أسماء المسارات ذات الأحرف \[aq]/\[aq] اللاحقة بشكل صحيح، وأحدث خطأ تجزئة إذا أُعطي وسيط NULL. .SH أمثلة مقتطف الشيفرة التالي يوضح استخدام \fBbasename\fP() و \fBdirname\fP(): .in +4n .EX char *dirc, *basec, *bname, *dname; char *path = "/etc/passwd"; \& dirc = strdup(path); basec = strdup(path); dname = dirname(dirc); bname = basename(basec); printf("dirname=%s, basename=%s\[rs]n", dname, bname); .EE .in .SH "انظر أيضًا" \fBbasename\fP(1)، \fBdirname\fP(1) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .