Ketahui perintah Linux - execv

execlp, execlp, execle, execv, execvp - melaksanakan fail

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 []);

Keterangan fungsi eksekusi

Keluarga pelaksanaan fungsi menggantikan imej proses semasa dengan imej proses baru. Fungsi-fungsi yang diterangkan dalam halaman manual ini adalah front-ends untuk melaksanakan fungsi (2). (Lihat halaman manual untuk melaksanakan maklumat terperinci mengenai penggantian proses semasa.)

Hujah awal untuk fungsi ini ialah pathname dari fail yang akan dilaksanakan.

The const char * arg dan elips berikutnya dalam fungsi execl , execlp , dan execle boleh dianggap sebagai arg0 , arg1 , ..., argn . Bersama-sama mereka menerangkan senarai satu atau lebih petunjuk untuk rentetan yang ditamatkan nol yang mewakili senarai hujah yang tersedia untuk program yang dilaksanakan. Hujah pertama, dengan konvensyen, harus menunjuk pada nama fail yang berkaitan dengan fail yang sedang dilaksanakan. Senarai hujah mesti ditamatkan oleh penunjuk NULL .

Fungsi execv dan execvp menyediakan pelbagai petunjuk ke rentetan yang ditamatkan nol yang mewakili senarai hujah yang tersedia untuk program baru. Hujah pertama, dengan konvensyen, harus menunjuk pada nama fail yang berkaitan dengan fail yang sedang dilaksanakan. Pelbagai pointer mesti ditamatkan oleh penunjuk NULL .

Fungsi pelaksanaan juga menentukan persekitaran proses yang dilaksanakan dengan mengikuti penunjuk NULL yang menamatkan senarai hujah dalam senarai parameter atau penuding ke array argv dengan parameter tambahan. Parameter tambahan ini adalah pelbagai petunjuk untuk rentetan nol yang telah ditamatkan dan mesti ditamatkan oleh penunjuk NULL . Fungsi lain mengambil persekitaran untuk imej proses baru dari persekitaran pemboleh ubah luaran dalam proses semasa.

Beberapa fungsi ini mempunyai semantik khas.

Fungsi execlp dan execvp akan menduplikasi tindakan shell dalam mencari fail yang boleh dijalankan jika nama fail yang dinyatakan tidak mengandungi aksara slash (/). Laluan carian ialah jalan yang ditentukan dalam persekitaran oleh pemboleh ubah PATH . Jika pembolehubah ini tidak ditentukan, jalan lalai ``: / bin: / usr / bin '' digunakan. Di samping itu, kesilapan tertentu juga dirawat khas.

Sekiranya kebenaran dinafikan untuk fail (cubaan melaksanakan kembali EACCES ), fungsi-fungsi ini akan terus mencari seluruh laluan carian. Sekiranya tiada fail lain, bagaimanapun, mereka akan kembali dengan pembolehubah global yang ditetapkan ke EACCES .

Jika tajuk fail tidak diiktiraf (cubaan melaksanakan ENOEXEC dikembalikan), fungsi ini akan melaksanakan shell dengan laluan fail sebagai argumen pertama. (Jika percubaan ini gagal, tiada carian lanjut dilakukan.)

Nilai Pulangan Fungsi Pelaksana

Jika mana-mana fungsi pelaksanaan mengembalikan, ralat akan berlaku. Nilai pulangan adalah -1, dan errno variabel global akan ditetapkan untuk menunjukkan kesilapan.