Ituexec keluarga fungsi menggantikan gambar proses saat ini dengan gambar proses baru. Fungsi yang dijelaskan di sini adalah ujung depan untuk fungsi tersebutmengeksekusi(2).
Argumen awal untuk fungsi-fungsi ini adalah pathname dari file yang akan dieksekusi.
Itu const char * arg dan elips berikutnya dalamexecl, execlp, daneksekusi fungsi dapat dianggap sebagai arg0 , arg1 , …, argn . Bersama-sama mereka mendeskripsikan daftar satu atau lebih pointer ke string yang diakhiri null yang mewakili daftar argumen yang tersedia untuk program yang dijalankan. Argumen pertama, berdasarkan konvensi, harus menunjuk ke nama file yang terkait dengan file yang sedang dieksekusi. Daftar argumen harus diakhiri olehBATAL penunjuk.
Ituexecv danexecvp fungsi menyediakan array pointer ke string yang diakhiri null yang mewakili daftar argumen yang tersedia untuk program baru. Argumen pertama, berdasarkan konvensi, harus menunjuk ke nama file yang terkait dengan file yang sedang dieksekusi. Array pointer harus diakhiri olehBATAL penunjuk.
Itueksekusi fungsi juga menentukan lingkungan dari proses yang dijalankan dengan mengikutiBATALpointer yang mengakhiri daftar argumen dalam daftar parameter atau pointer ke array argv dengan parameter tambahan. Parameter tambahan ini adalah array pointer ke string yang diakhiri null dan harus diakhiri olehBATAL penunjuk. Fungsi lainnya mengambil lingkungan untuk citra proses baru dari variabel eksternal mengepung dalam proses saat ini.
Beberapa fungsi ini memiliki semantik khusus.
Fungsi-fungsiexeclp danexecvp akan menduplikasi tindakan shell dalam mencari file yang dapat dieksekusi jika nama file yang ditentukan tidak mengandung karakter slash (/). Jalur pencarian adalah jalur yang ditentukan di lingkungan olehPATH variabel. Jika variabel ini tidak ditentukan, jalur default ``: / bin: / usr / bin '' digunakan. Selain itu, kesalahan tertentu diperlakukan secara khusus.
Jika izin ditolak untuk file (dicobamengeksekusi dikembalikanEACCES), fungsi-fungsi ini akan terus mencari sisa jalur pencarian. Jika tidak ada file lain yang ditemukan, mereka akan kembali dengan variabel global errno mulaiEACCES.
Jika header file tidak dikenali (dicobamengeksekusi dikembalikanENOEXEC), fungsi-fungsi ini akan mengeksekusi shell dengan path file sebagai argumen pertama. (Jika upaya ini gagal, tidak ada pencarian lebih lanjut yang dilakukan.)
Nilai Pengembalian
Jika adaexec fungsi kembali, kesalahan akan terjadi. Nilai kembalian adalah -1, dan variabel global errno akan diatur untuk menunjukkan kesalahan.
Penting: Menggunakan pria perintah ( % pria ) untuk melihat bagaimana perintah digunakan pada komputer khusus Anda.
Nama
execl, execlp, execle, execv, execvp - jalankan file
Ringkasan
#include extern char ** environ; int execl (const char * jalan , const char * arg , …); int execlp (const char * mengajukan , const char * arg , …); int execle (const char * jalan , const char * arg , …, char * const envp ); int execv (const char * jalan , char * const argv ); int execvp (const char * mengajukan , char * const argv );