.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2014 Google, Inc., written by David Drysdale .\" and Copyright (c) 2015, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH execveat 2 "2 mai 2024" "Pagini de manual de Linux 6.8" .SH NUME execveat \- execută programul în raport cu un descriptor de fișier de director .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP /* Definirea constantelor \fBAT_*\fP */ \fB#include \fP .P \fBint execveat(int \fP\fIdirfd\fP\fB, const char *\fP\fIpathname\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 DESCRIERE .\" commit 51f39a1f0cea1cacf8c787f652f26dfee9611874 Apelul de sistem \fBexecveat\fP() execută programul la care se face referire prin combinația dintre \fIdirfd\fP și \fIpathname\fP. Funcționează exact în același mod ca și \fBexecve\fP(2), cu excepția diferențelor descrise în această pagină de manual. .P În cazul în care numele de rută dat în \fIpathname\fP este relativ, atunci acesta este interpretat în raport cu directorul la care face referire descriptorul de fișier \fIdirfd\fP (mai degrabă decât în raport cu directorul de lucru curent al procesului apelant, așa cum face \fBexecve\fP(2) pentru un nume de rută relativ). .P Dacă \fIpathname\fP este relativ și \fIdirfd\fP este valoarea specială \fBAT_FDCWD\fP, atunci \fIpathname\fP este interpretat relativ la directorul de lucru curent al procesului apelant (ca \fBexecve\fP(2)). .P Dacă \fInume\-rută\fP este absolut, atunci \fIdirfd\fP este ignorat. .P Dacă \fIpathname\fP este un șir de caractere gol și este specificat fanionul \fBAT_EMPTY_PATH\fP, atunci descriptorul de fișier \fIdirfd\fP specifică fișierul care urmează să fie executat (adică \fIdirfd\fP se referă la un fișier executabil, mai degrabă decât la un director). .P Argumentul \fIflags\fP este o mască de biți care include zero sau mai multe dintre următoarele fanioane: .TP \fBAT_EMPTY_PATH\fP Dacă \fIpathname\fP este un șir gol, operează pe fișierul la care se face referire prin \fIdirfd\fP (care poate fi obținut cu ajutorul fanionului \fBopen\fP(2) \fBO_PATH\fP). .TP \fBAT_SYMLINK_NOFOLLOW\fP În cazul în care fișierul identificat de \fIdirfd\fP și un nume de rută \fIpathname\fP non\-NULL este o legătură simbolică, atunci apelul eșuează cu eroarea \fBELOOP\fP. .SH "VALOAREA RETURNATĂ" În caz de succes, \fBexecveat\fP() returnează zero. În caz de eroare, se returnează \-1, și \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE Aceleași erori care apar pentru \fBexecve\fP(2) pot apărea și pentru \fBexecveat\fP(). Următoarele erori suplimentare pot apărea pentru \fBexecveat\fP(): .TP \fIpathname\fP este relativ, dar \fIdirfd\fP nu este nici \fBAT_FDCWD\fP, nici un descriptor de fișier valid. .TP \fBEINVAL\fP Fanion nevalid specificat în \fIfanioane\fP. .TP \fBELOOP\fP Fanioanele \fIflags\fP includ \fBAT_SYMLINK_NOFOLLOW\fP, iar fișierul identificat prin \fIdirfd\fP și un \fIpathname\fP non\-NULL este o legătură simbolică. .TP \fBENOENT\fP Programul identificat de \fIdirfd\fP și \fIpathname\fP necesită utilizarea unui program de interpretare (cum ar fi un script care începe cu „#!”), dar descriptorul de fișier \fIdirfd\fP a fost deschis cu fanionul \fBO_CLOEXEC\fP, ceea ce face ca fișierul de program să fie inaccesibil pentru interpretul lansat. A se vedea secțiunea ERORI. .TP \fBENOTDIR\fP \fInume\-rută\fP este relativ și \fIdirfd\fP este un descriptor de fișier ce se referă la un alt fișier decât un director. .SH STANDARDE Linux. .SH ISTORIC Linux 3.19, glibc 2.34. .SH NOTE În plus față de motivele explicate în \fBopenat\fP(2), apelul de sistem \fBexecveat\fP() este, de asemenea, necesar pentru a permite ca \fBfexecve\fP(3) să fie implementat pe sisteme care nu au montat sistemul de fișiere \fI/proc\fP. .P Atunci când i se cere să execute un fișier script, \fIargv[0]\fP care este transmis interpretului de script este un șir de caractere de forma \fI/dev/fd/N\fP sau \fI/dev/fd/N/P\fP, unde \fIN\fP este numărul descriptorului de fișier transmis prin intermediul argumentului \fIdirfd\fP. Un șir de prima formă apare atunci când se utilizează \fBAT_EMPTY_PATH\fP. Un șir de forma a doua apare atunci când scriptul este specificat atât prin \fIdirfd\fP, cât și prin \fIpathname\fP; în acest caz, \fIP\fP este valoarea dată în \fIpathname\fP. .P Din aceleași motive descrise la \fBfexecve\fP(3), modul natural de lucru atunci când se utilizează \fBexecveat\fP() este de a defini fanionul close\-on\-exec pe \fIdirfd\fP; (dar a se vedea secțiunea ERORI). .SH ERORI Eroarea \fBENOENT\fP descrisă mai sus înseamnă că nu este posibil să se definească fanionul close\-on\-exec pe descriptorul de fișier dat la un apel de forma: .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 Cu toate acestea, incapacitatea de a defini fanionul close\-on\-exec înseamnă că un descriptor de fișier care face referire la script se pierde în scriptul în sine. Pe lângă faptul că irosește un descriptor de fișier, această pierdere poate duce la epuizarea descriptorului de fișier în scenariile în care scripturile utilizează recursiv \fBexecveat\fP(). .SH "CONSULTAȚI ȘI" \fBexecve\fP(2), \fBopenat\fP(2), \fBfexecve\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .