Lernu la Linuksan Komandon - ekzec

Nomo: execl, execlp, execle, execv, execvp - ekzekuti dosieron

Sinopsis

#include

ekstere char ** environ;

int execl (const char * vojo , const char * arg , ...);
int execlp (const char * dosiero , const char * arg , ...);
int execle (const char * vojo , const char * arg , ..., char * const envp []);
int execv (const char * vojo , char * const argv []);
int execvp (const char * dosiero , char * const argv []);

Priskribo

La ekzek- familio de funkcioj anstataŭigas la nunan procezan bildon kun nova proceza bildo. La funkcioj priskribitaj en ĉi tiu manlibro estas antaŭfinaloj por la funkcio ekzekve (2). La komenca argumento por ĉi tiuj funkcioj estas la pasnomo de dosiero, kiu devas esti ekzekutita.

La const char * arg kaj postaj elipsoj en la ekzecl , ekzekuti kaj ekzekuti funkciojn povas esti pensitaj kiel arg0 , arg1 , ..., argn . Kune ili priskribas liston de unu aŭ pli da signoj al nulaj finaĵoj, kiuj reprezentas la argumentan liston havebla al la ekzekutita programo. La unua argumento, per konvencio, devas montri la dosiernomon asociitan kun la dosiero ekzekutita. La listo de argumentoj devas esti nuligita per NULL- puntero.

La ekzekciaj kaj ekzekciaj funkcioj provizas tabelon de punteroj al nulaj finaĵoj, kiuj reprezentas la argumentan liston havebla al la nova programo. La unua argumento, per konvencio, devas montri la dosiernomon asociitan kun la dosiero ekzekutita. La tabelo de punteroj devas esti nuligita per NULL- puntero.

La funkcio de ekzekuto ankaŭ specifas la medion de la ekzekutita procezo sekvante la dosieron de NULL kiu finigas la liston de argumentoj en la parametra listo aŭ la puntero al la argv-aro kun aldona parametro. Ĉi tiu aldona parametro estas aro de punteroj al nulaj finaĵoj kaj devas esti nuligita per NULL- puntero. La aliaj funkcioj prenas la medion por la nova proceza bildo de la ekstera variablo en medio en la nuna procezo.

Iuj de ĉi tiuj funkcioj havas specialan semantikon.

La funkcioj ekzekuti kaj ekzekuti duobligos la agojn de la ŝelo serĉante ejektivan dosieron, se la nomo de la dosiernomo ne enhavas slash (/) karakteron. La serĉpuro estas la vojo specifita en la medio per la variablo de PATH . Se ĉi tiu variablo ne estas specifita, la antaŭdira vojo ``: / bin: / usr / bin '' estas uzata. Krome, iuj eraroj estas traktataj speciale.

Se oni neas permeson por dosiero (la provita ekzekuto revenis EACCES ), ĉi tiuj funkcioj daŭre serĉos la reston de la serĉvojo. Se neniu alia dosiero troviĝas, tamen ili revenos kun la tutmonda variablo errno al EACCES .

Se la dosiero de dosiero ne estas agnoskita (la provo execve revenis ENOEXEC ), ĉi tiuj funkcioj ekzekuti la ŝelon kun la vojo de la dosiero kiel ĝia unua argumento. (Se ĉi tiu provo malsukcesas, neniu plu serĉado fariĝas.)

Rezerva valoro

Se iu el la funkcioj de ekzec revenos, eraro okazos. La valoro de rondveturo estas -1, kaj la tutmonda variablo errno estos difinita por indiki la eraron.