Ikasi Linux Command - execv

execl, execlp, execle, execv, execvp - fitxategi bat exekutatu

Laburpena

#include

external char ** environ;

int execl (const char * bidea , const char * arg , ...);
int execlp (const char * fitxategia , const char * arg , ...);
int execle (const char * path , const char * arg , ..., char * const envp []);
int execv (const char * path , char * const argv []);
int execvp (const char * file , char * const argv []);

Exekuko funtzioen deskribapena

Funtzioen familiako exekutiboak uneko prozesuaren irudia ordezkatzen du prozesu berriaren irudiarekin. Eskuliburu orri honetan deskribatutako funtzioak funtzionala execve (2) frontend-ak dira. (Ikusi eskuliburuaren orrialdea exekutatzeko uneko prozesuaren ordezkapenari buruzko informazio zehatza lortzeko.)

Funtzio horien hasierako argumentua exekutatu beharreko fitxategi baten bidea da.

Konstrukzio karakterrak eta ondorengo funtzioen execlp eta execle elipsiak honako arg0 , arg1 , ..., argn bezala pentsatu daitezke. Elkarrekin, exekutatutako programa erabilgarri dauden argumentuen zerrenda adierazten duten null-terminated kateak erakusle bat edo gehiago deskribatzen dute. Lehen argumentua, hitzarmenaren arabera, exekutatzen ari den fitxategiarekin loturiko fitxategiaren izena adierazi behar da. Argumentuen zerrenda NULL erakusle baten bidez amaitu behar da.

Execv eta execvp funtzioak programa berrian eskuragarri dauden argumentuen zerrenda adierazten duten null-terminated kateak erakusleak eskaintzen dituzte. Lehen argumentua, hitzarmenaren arabera, exekutatzen ari den fitxategiarekin loturiko fitxategiaren izena adierazi behar da. Erakusleen arrayak NULL erakusle batek amaitu behar du.

Exekutatutako funtzioak exekutatutako prozesuaren ingurunea ere zehazten du NULL erakuslea parametroen zerrendan argumentu zerrenda amaitzean edo argv arrayan erakuslea parametro gehigarri batekin amaitzen du. Parametro gehigarri hau null-terminated kateak erakusleen array bat da eta NULL erakusle bat amaitu behar da. Beste funtzioek hartzen dute ingurumena prozesu berriaren irudia ingurune aldakorreko inguruneko uneko prozesuan.

Funtzio horietako batzuk semantika berezia dute.

Exeklp eta execvp funtzioak shell exekutagarriak exekutatuko diren fitxategi baten bila bikoiztuko dira zehaztutako fitxategien izenak ez badu barrako (/) karaktere bat. Bilaketa bidea ingurune batean zehaztutako bidea da PATH aldagaian. Aldagai hau zehazten ez bada, ``: / bin: / usr / bin '' bidea lehenetsia erabiltzen da. Gainera, akats batzuk bereziki tratatzen dira.

Fitxategi bati baimena ukatzen bazaio (saiatu exekutatu EACCES itzuli da), funtzio horiek bilaketa motaren gainerako bilaketak jarraitzen jarraituko dute. Beste fitxategi bat aurkitzen ez bada ere, EACCES-ekin batera erratu multzo globalarekin itzuliko dira.

Fitxategi baten goiburua ez bada hautatzen (saiatu exekutatu ENOEXEC itzuli da), funtzio horiek shell prozesatuko dira fitxategiaren bidea bere lehen argumentua bezala. (Saiakerak huts egiten badu, ez da gehiago bilatzen).

Exekuko funtzioen balioa itzultzea

Egikaritze funtzioetako bat itzultzen bada, errorea gertatu da. Itzulerako balioa -1 da, eta errno globalaren errorea adierazteko ezarriko da.