Linux / Unix kommando: execvp

Namme

execl, execlp, execle, execv, execvp - bestân in bestân útfiere

Synopsis

#include

extern char ** environ;

int execl (const char * paad , const char * arg , ...);
int execlp (const char * triem , 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 * triem , char * const argv []);

Oersjoch fan it kommando

De eksekfamylje fan funksjes ferfangt it aktive prosesôfbylding mei in nije prosesôfbylding. De hjir beskreaun funksjes binne foargrûnen foar de funksjeútfier (2).

It earste argumint foar dizze funksjes is it padenamme fan in bestân dat útfierd wurde moat.

De konst-kar * arg en lettere ellipses yn 'e execl , execlp , en útfierefunksjes kinne tinke as arg0 , arg1 , ..., argn . Tegearre beskriuwe se in list mei ien of mear pointers nei nul-terminearre tekenrigen dy't de argumintenlist fertsjinje foar it útfierende programma. It earste argumint, troch konvintaasje, moat punt wurde nei de triemnamme dy't ferbûn is mei de triem dy't útfiert wurdt. De list fan arguminten moat ôfsluten wurde troch in NULL- pointer.

De funksjes fan execv en execvp biede in oplossing fan punten nei nul-terminearre tekenrigen dy't de arguminte-list fertsjinje foar it nije programma. It earste argumint, troch konvintaasje, moat punt wurde nei de triemnamme dy't ferbûn is mei de triem dy't útfiert wurdt. De rigel fan pointer moat ôfsluten wurde troch in NULL- pointer.

De útfierfunksje jout ek de omjouwing fan it útfierde proses oan om troch de NULL- pointer te folgjen dy't de list fan arguminten yn 'e parameter list of de pointer befettet oan' e argv array mei in ekstra parameter. Dizze oanfoljende parameter is in array fan punten nei nul-terminearre tekenrige en moat ôfsluten wurde troch in NULL- pointer. De oare funksjes nimme de omjouwing foar it nije prosesôfbylding fan 'e eksterne fariant yn it aktuele proses.

Guon fan dizze funksjes hawwe spesjale semantika.

De funksjes execlp en execvp sille duplikearje de aksjes fan 'e shell yn it sykjen nei in útfierbere triem as de opjûne triemnamme gjin slash (/) karakter befet. It sykpaad is it paad dat oanjûn is yn 'e omjouwing troch de PATH- variable. As dizze fariabele net oanjûn is, wurdt de standertpath ``: / bin: / usr / bin '' brûkt. Dêrnjonken wurde beskate fouten spesjaal behannele.

As fergunning ferlern is foar in bestân (de besochte útfier behannele EACCES ), sille dizze funksjes trochgean sykje troch it oare fan it sykpaad. As der gjin oare bestân fûn wurdt, komme se lykwols werom mei de globale fariabele errogo op EACCES .

As de koptekst fan in bestân net erkend is (de besochte útfier kaam werom ENOEXEC ), sille dizze funksjes de shell útfiere mei de paad fan 'e triem as it earste argumint. (As dit besykjen falt, sil gjin fierder sykje wurde.)

Return Value

As ien fan 'e útfierenfunksjes weromkommt, dan sil in flater wêze. De weromkommende wearde is -1, en de globale fariant errno sil ynsteld wurde om de flater oan te jaan.

Wichtich: Brûk de manbehearder ( % man ) om te sjen hoe't in kommando brûkt wurdt op jo bepaalde komputer.