.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2006, 2014, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH fexecve 3 "20 iulie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME fexecve \- execută programul specificat prin intermediul descriptorului de fișier .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBint fexecve(int \fP\fIfd\fP\fB, char *const \fP\fIargv\fP\fB[], char *const \fP\fIenvp\fP\fB[]);\fP .fi .PP .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .PP \fBfexecve\fP(): .nf Începând cu glibc 2.10 _POSIX_C_SOURCE >= 200809L Înainte de glibc 2.10: _GNU_SOURCE .fi .SH DESCRIERE \fBfexecve\fP() îndeplinește aceeași sarcină ca și \fBexecve\fP(2), cu diferența că fișierul care urmează să fie executat este specificat printr\-un descriptor de fișier, \fIfd\fP, mai degrabă decât printr\-un nume de rută. Descriptorul de fișier \fIfd\fP trebuie să fie deschis numai\-pentru\-citire (\fBO_RDONLY\fP) sau cu fanionul \fBO_PATH\fP, iar apelantul trebuie să aibă permisiunea de a executa fișierul la care se referă. .SH "VALOAREA RETURNATĂ" Un apel reușit la \fBfexecve\fP() nu returnează niciodată. În caz de eroare, funcția returnează, cu o valoare a rezultatului de \-1, iar \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE Erorile sunt ca pentru \fBexecve\fP(2), cu următoarele adăugiri: .TP \fBEINVAL\fP \fIfd\fP nu este un descriptor de fișier valid, sau \fIargv\fP este NULL, sau \fIenvp\fP este NULL. .TP \fBENOENT\fP Fanionul close\-on\-exec este activat în \fIfd\fP, iar \fIfd\fP se referă la un script. A se vedea ERORI. .TP \fBENOSYS\fP Nucleul nu oferă apelul de sistem \fBexecveat\fP(2), și sistemul de fișiere \fI/proc\fP nu a putut fi accesat. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBfexecve\fP() T} Siguranța firelor MT\-Safe .TE .sp 1 .SH STANDARDE POSIX.1\-2008. .SH ISTORIC glibc 2.3.2. .PP .\" glibc commit 43ffc53a352a67672210c9dd4959f6c6b7407e60 În Linux cu versiunile glibc 2.26 și anterioare, \fBfexecve\fP() este implementată utilizând sistemul de fișiere \fBproc\fP(5), astfel încât \fI/proc\fP trebuie să fie montat și disponibil în momentul apelului. Începând cu glibc 2.27, în cazul în care nucleul subiacent acceptă apelul de sistem \fBexecveat\fP(2), atunci \fBfexecve\fP() este implementată utilizând acest apel de sistem, cu avantajul că \fI/proc\fP nu trebuie să fie montat. .SH NOTE Ideea din spatele \fBfexecve\fP() este de a permite apelantului să verifice (suma de control) conținutul unui executabil înainte de a\-l executa. Simpla deschidere a fișierului, verificarea sumei de control a conținutului și apoi efectuarea unui \fBexecve\fP(2) nu ar fi suficientă, deoarece, între cele două etape, numele fișierului sau un prefix de director al numelui rutei ar fi putut fi schimbat (de exemplu, prin modificarea țintei unei legături simbolice). \fBfexecve\fP() nu atenuează problema că \fIconținutul\fP unui fișier ar putea fi modificat între verificarea sumei de control și apelul la \fBfexecve\fP(); pentru aceasta, soluția este de a se asigura că permisiunile asupra fișierului împiedică modificarea acestuia de către utilizatorii rău intenționați. .PP Modul firesc de utilizare a \fBfexecve\fP() este de a activa fanionul „close\-on\-exec” în \fIfd\fP, astfel încât descriptorul de fișier să nu ajungă la programul care este executat. Această abordare este firească din două motive. În primul rând, previne consumarea inutilă a descriptorilor de fișiere (în mod normal, programul executat nu are nevoie de un descriptor de fișier care se referă la programul însuși). În al doilea rând, în cazul în care \fBfexecve\fP() este utilizată în mod recursiv, utilizarea fanionului „closed\-on\-exec” previne epuizarea descriptorului de fișier care ar rezulta din faptul că fiecare pas în recursivitate ar face ca încă un descriptor de fișier să fie transmis către noul program (dar vedeți secțiunea Erori). .SH ERORI Dacă \fIfd\fP se referă la un script (adică este un fișier text executabil care numește un interpret de script cu o primă linie care începe cu caracterele \fI#!\fP) și dacă pentru \fIfd\fP a fost activat fanionul „close\-on\-exec”, atunci \fBfexecve\fP() eșuează cu eroarea \fBENOENT\fP. Această eroare apare deoarece, în momentul în care este executat interpretul scriptului, \fIfd\fP a fost deja închis din cauza fanionului „close\-on\-exec”. Astfel, fanionul „close\-on\-exec” nu poate fi activat în \fIfd\fP dacă acesta se referă la un script, ceea ce duce la problemele descrise în NOTE. .SH "CONSULTAȚI ȘI" \fBexecve\fP(2), \fBexecveat\fP(2) .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 .