Sinau perintah Linux - execl

Jeneng: execl, execlp, execle, execv, execvp - nglakokaké file

Sinopsis

#include

extern char ** environ;

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

Gambaran

Fungsi kulawarga fungsi bakal ngganti gambar proses saiki kanthi gambar proses anyar. Fungsi sing dijlèntrèhaké ing kaca manual iki minangka ujung ngarep kanggo fungsi execve (2). Argumentasi awal kanggo fungsi kasebut yaiku pathname file sing bakal dileksanakake.

The const char * arg lan ellipses ing fungsi execl , execlp , lan execle bisa dianggep minangka arg0 , arg1 , ..., argn . Bebarengan padha njlentrehake dhaptar siji utawa luwih pointer kanggo string sing diakhiri null sing makili dhaptar argumen sing kasedhiya kanggo program sing dieksekusi. Argumentasi pisanan, kanthi konvènsi, kudu nuduhaké jeneng berkas sing ana hubungané karo file sing dieksekusi. Dhaptar argumen kudu diakhiri dening pointer NULL .

Fungsi execvp lan execvp nyedhiyakake array pointer menyang string sing diestimasi null sing makili dhaptar argumen sing kasedhiya kanggo program anyar. Argumentasi pisanan, kanthi konvènsi, kudu nuduhaké jeneng berkas sing ana hubungané karo file sing dieksekusi. Aspek pointer kudu diakhiri dening pointer NULL .

Fungsi execle uga nemtokake lingkungan proses dileksanakake kanthi ngikuti pointer NULL sing ngilangi dhaptar argumen ing dhaptar parameter utawa pointer menyang array argv kanthi parameter tambahan. Parameter tambahan iki minangka array pointer kanggo string sing diestimasi null lan kudu diakhiri dening pointer NULL . Fungsi liyane njupuk lingkungan kanggo gambar proses anyar saka lingkungan variabel eksternal ing proses saiki.

Sawetara fungsi kasebut duwe semantik khusus.

Fungsi execlp lan execvp bakal duplikat tindakan shell ing nggoleki file eksekusi yen jeneng berkas kasebut ora ngemot garis miring (/). Path panelusuran minangka path sing kasebut ing lingkungan dening variabel PATH . Yen variabel iki ora ditemtokake, path default ``: / bin: / usr / bin '' digunakake. Kajaba iku, kasalahan tartamtu dianggep khusus.

Yen ijin ditolak kanggo file ( ngupayakake eksekusi ngasilake EACCES ), fungsi-fungsi iki bakal terus nggoleki sisa jalur panelusuran. Yen ora ana berkas liyane sing ditemokake, bakal bali karo variabel global sing disetel menyang EACCES .

Yen header file ora diakoni ( eksekusi nyoba ngasilake ENOEXEC ), fungsi kasebut bakal nglakokna cangkang karo path file minangka argumen sing pisanan. (Yen nyoba iki gagal, ora ana maneh nelusur.)

Bali Value

Yen ana fungsi exec , bakal ana kesalahan. Nilai bali punika -1, lan variabel global errno bakal disetel kanggo nunjukake kesalahan.