Diajar dina Komando Linux Ubuntu - execl

Ngaran: execl, execlp, execle, execv, execvp - ngaéksekusi file a

Synopsis

#include

extern char ** environ;

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

gambaran

Kulawarga exec fungsi ngagantikeun proses gambar ayeuna ku anyar prosés gambar. Fungsi dijelaskeun dina kaca manual ieu téh hareup-tungtung keur fungsi execve (2). Argumen awal pikeun fungsi ieu teh pathname of a file nu bisa dieksekusi.

The const char * arg na ellipses saterusna dina execl, execlp, sarta fungsi execle bisa dianggap salaku arg0, arg1, ..., argn. Duaan aranjeunna nerangkeun daptar salah sahiji atawa leuwih pointers mun string null-terminated nu ngagambarkeun daptar argumen sadia pikeun program dieksekusi. Argumen munggaran, ku konvénsi, kudu nunjuk kana ngaran file pakait jeung file keur dibales. Daptar alesan kudu terminated ku pointer hypothesis.

The execv na execvp fungsi nyadiakeun hiji Asép Sunandar Sunarya ti pointers mun string null-terminated nu ngagambarkeun daptar argumen sadia pikeun program anyar. Argumen munggaran, ku konvénsi, kudu nunjuk kana ngaran file pakait sareng file nu keur dibales. The Asép Sunandar Sunarya ti pointers kudu terminated ku pointer hypothesis.

Fungsi execle ogé hususna lingkungan tina prosés dieksekusi ku nuturkeun pointer hypothesis nu terminates daptar alesan dina daptar parameter atawa pointer ka Asép Sunandar Sunarya argv kalawan parameter tambihan. Parameter tambihan ieu mangrupa Asép Sunandar Sunarya ti pointers mun string null-terminated sarta kudu terminated ku pointer hypothesis. Fungsi sejenna nyandak lingkungan pikeun gambar prosés anyar tina variabel environ éksternal dina prosés ayeuna.

Sababaraha fungsi ieu gaduh semantik husus.

Fungsi execlp na execvp bakal jadi gaduh panulisan laku lampah cangkang dina neangan hiji file laksana lamun ngaran file dieusian teu ngandung hiji slash (/) karakter. Jalur pilarian nyaeta jalur dieusian di lingkungan ku variabel jalur. Lamun variabel ieu teu dieusian, jalur standar ``: / bin: / usr / bin '' ieu dipaké. Sajaba ti éta, kasalahan tangtu anu diolah husus.

Mun idin anu nampik pikeun file (nu execve nyoba balik EACCES), fungsi ieu baris nuluykeun neangan sesa jalur pilarian. Mun euweuh file lianna geus kapanggih, kumaha oge, aranjeunna bakal mulang kalawan variabel errno global disetel ka EACCES.

Mun lulugu tina file a henteu dipikawanoh (nu execve nyoba balik ENOEXEC), fungsi ieu bakal ngaéksekusi cangkang jeung jalur tina file sakumaha argumen kahijina. (Mun usaha ieu gagal, teu néangan salajengna geus rengse.)

balik deui Niley

Lamun salah sahiji fungsi exec mulih, kasalahan bakal geus lumangsung. Nilai balik téh -1, jeung variabel errno global bakal disetel ka nunjukkeun kasalahan.