.\" -*- coding: UTF-8 -*- .\" Copyright 2014, Google, Inc. .\" Copyright 2015, 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 execveat 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم execveat \- تنفيذ برنامج نسبةً إلى واصف ملف دليل .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP /* Definition of \fBAT_*\fP constants */ \fB#include \fP .P \fBint execveat(int \fP\fIdirfd\fP\fB, const char *\fP\fIpath\fP\fB,\fP \fB char *const _Nullable \fP\fIargv\fP\fB[],\fP \fB char *const _Nullable \fP\fIenvp\fP\fB[],\fP \fB int \fP\fIflags\fP\fB);\fP .fi .SH الوصف .\" commit 51f39a1f0cea1cacf8c787f652f26dfee9611874 استدعاء النظام \fBexecveat\fP() ينفذ البرنامج المشار إليه بمزيج من \fIdirfd\fP و \fIpath\fP. يعمل بنفس طريقة \fBexecve\fP(2) تماماً، باستثناء الاختلافات الموصوفة في صفحة الدليل هذه. .P إذا كان \fIpath\fP نسبياً، فسيُفسر نسبةً إلى الدليل المشار إليه بواسطة واصف الملف \fIdirfd\fP (بدلاً من نسبته إلى دليل العمل الحالي للعملية المستدعية، كما تفعل \fBexecve\fP(2) لاسم مسار نسبي). .P إذا كان \fIpath\fP نسبياً وكان \fIdirfd\fP هو القيمة الخاصة \fBAT_FDCWD\fP، فسيُفسر \fIpath\fP نسبةً إلى دليل العمل الحالي للعملية المستدعية (مثل \fBexecve\fP(2)). .P إذا كان المسار \fIpath\fP مطلقاً، فُيتجاهل \fIdirfd\fP. .P إذا كان \fIpath\fP سلسلة فارغة وتم تحديد العلم \fBAT_EMPTY_PATH\fP، فإن واصف الملف \fIdirfd\fP يحدد الملف المراد تنفيذه (أي \fIdirfd\fP يشير إلى ملف قابل للتنفيذ، وليس دليلاً). .P الوسيطة \fIflags\fP هي قناع بت يمكن أن يتضمن صفراً أو أكثر من الأعلام التالية: .TP \fBAT_EMPTY_PATH\fP إذا كان \fIpath\fP سلسلة فارغة، فاعمل على الملف المشار إليه بواسطة \fIdirfd\fP (الذي قد يكون تم الحصول عليه باستخدام العلم \fBO_PATH\fP من \fBopen\fP(2)). .TP \fBAT_SYMLINK_NOFOLLOW\fP إذا كان الملف المحدد بواسطة \fIdirfd\fP و \fIpath\fP غير NULL هو رابط رمزي، فسيفشل الاستدعاء مع الخطأ \fBELOOP\fP. .SH "قيمة الإرجاع" عند النجاح، لا يعود \fBexecveat\fP(). عند الخطأ، يُعاد \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء نفس الأخطاء التي تحدث لـ \fBexecve\fP(2) يمكن أن تحدث أيضًا لـ \fBexecveat\fP(). يمكن أن تحدث الأخطاء الإضافية التالية لـ \fBexecveat\fP(): .TP \fIمسار\fP نسبي لكن \fIdirfd\fP ليس \fBAT_FDCWD\fP ولا واصف ملف صالح. .TP \fBEINVAL\fP راية غير صالحة محددة في \fIflags\fP. .TP \fBELOOP\fP \fIflags\fP يتضمن \fBAT_SYMLINK_NOFOLLOW\fP والملف المحدد بواسطة \fIdirfd\fP و \fIpath\fP غير NULL هو رابط رمزي. .TP \fBENOENT\fP البرنامج المحدد بواسطة \fIdirfd\fP و \fIpath\fP يتطلب استخدام برنامج مفسر (مثل سكريبت يبدأ بـ "#!")، لكن واصف الملف \fIdirfd\fP فُتح مع العلم \fBO_CLOEXEC\fP، مما يؤدي إلى عدم إمكانية وصول المفسر المُطلق إلى ملف البرنامج. انظر BUGS. .TP \fBENOTDIR\fP المسار \fIpath\fP نسبي و \fIdirfd\fP هو واصف ملف يشير إلى ملف غير الدليل. .SH المعايير لينكس. .SH التاريخ لينكس 3.19، glibc 2.34. .SH ملاحظات بالإضافة إلى الأسباب المفسرة في \fBopenat\fP(2)، فإن استدعاء النظام \fBexecveat\fP() مطلوب أيضًا للسماح بتنفيذ \fBfexecve\fP(3) على الأنظمة التي لا تحتوي على نظام الملفات \fI/proc\fP موصولاً. .P عند طلب تنفيذ ملف سكريبت، فإن \fIargv[0]\fP الذي يُمرر إلى مفسر السكريبت هو سلسلة من الشكل \fI/dev/fd/N\fP أو \fI/dev/fd/N/P\fP، حيث \fIN\fP هو رقم واصف الملف الممرر عبر الوسيطة \fIdirfd\fP. تحدث سلسلة من الشكل الأول عند استخدام \fBAT_EMPTY_PATH\fP. تحدث سلسلة من الشكل الثاني عند تحديد السكريبت عبر كل من \fIdirfd\fP و \fIpath\fP؛ في هذه الحالة، \fIP\fP هو القيمة المعطاة في \fIpath\fP. .P لنفس الأسباب الموصوفة في \fBfexecve\fP(3)، فإن الأسلوب الطبيعي عند استخدام \fBexecveat\fP() هو ضبط علم الإغلاق عند التنفيذ على \fIdirfd\fP. (لكن انظر BUGS.) .SH العلل الخطأ \fBENOENT\fP الموصوف أعلاه يعني أنه ليس من الممكن ضبط علم الإغلاق عند التنفيذ على واصف الملف المعطى لاستدعاء من الشكل: .P .in +4n .EX execveat(fd, "", argv, envp, AT_EMPTY_PATH); .EE .in .P .\" For an example, see Michael Kerrisk's 2015-01-10 reply in this LKML .\" thread (http://thread.gmane.org/gmane.linux.kernel/1836105/focus=20229): .\" .\" Subject: [PATCHv10 man-pages 5/5] execveat.2: initial man page.\" for execveat(2 .\" Date: Mon, 24 Nov 2014 11:53:59 +0000 مع ذلك، فإن عدم القدرة على ضبط علم الإغلاق عند التنفيذ يعني أن واصف ملف يشير إلى السكريبت يتسرب إلى السكريبت نفسه. بالإضافة إلى إهدار واصف ملف، يمكن أن يؤدي هذا التسرب إلى استنفاد واصفات الملف في السيناريوهات حيث تستخدم السكريبتات \fBexecveat\fP() بشكل تكراري. .SH "انظر أيضًا" \fBexecve\fP(2), \fBopenat\fP(2), \fBfexecve\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 .