ເນື້ອຫາ
ທexec ຄອບຄົວຂອງ ໜ້າ ທີ່ແທນຮູບພາບຂະບວນການໃນປະຈຸບັນດ້ວຍຮູບພາບຂະບວນການ ໃໝ່. ໜ້າ ທີ່ອະທິບາຍຢູ່ນີ້ແມ່ນ ໜ້າ ທີ່ ສຳ ລັບ ໜ້າ ທີ່ປະຕິບັດ(2).
ການໂຕ້ຖຽງໃນເບື້ອງຕົ້ນ ສຳ ລັບ ໜ້າ ທີ່ເຫຼົ່ານີ້ແມ່ນ pathname ຂອງແຟ້ມເອກະສານທີ່ຕ້ອງປະຕິບັດ.
ທconst char * arg ແລະແຜ່ນໃບມົນໃນຕໍ່ມາexecl, execlp, ແລະexecle ຫນ້າທີ່ສາມາດຄິດວ່າເປັນarg0, arg1, ..., ຖືພາ. ພ້ອມກັນພວກເຂົາອະທິບາຍບັນຊີລາຍຊື່ຂອງຜູ້ຊີ້ບອກ ໜຶ່ງ ຫຼືຫຼາຍຈຸດຕໍ່ບັນດາສາຍເຊືອກທີ່ສິ້ນສຸດລົງເຊິ່ງເປັນຕົວແທນຂອງລາຍຊື່ການໂຕ້ຖຽງທີ່ມີຢູ່ກັບໂປແກມທີ່ຖືກປະຕິບັດ. ການໂຕ້ຖຽງຄັ້ງທໍາອິດ, ໂດຍການປະຊຸມ, ຄວນຊີ້ໃຫ້ເຫັນຊື່ໄຟລ໌ທີ່ກ່ຽວຂ້ອງກັບໄຟລ໌ທີ່ຖືກປະຕິບັດ. ບັນຊີລາຍຊື່ຂອງການໂຕ້ຖຽງຕ້ອງ ຖືກລະງັບໂດຍກNULL ຕົວຊີ້.
ທexecv ແລະexecvp ໜ້າ ທີ່ສະ ໜອງ ຕົວຊີ້ບອກຈຸດທີ່ບໍ່ມີການສິ້ນສຸດເຊິ່ງເປັນຕົວແທນຂອງລາຍຊື່ການໂຕ້ຖຽງທີ່ມີໃຫ້ກັບໂປແກຼມ ໃໝ່. ການໂຕ້ຖຽງຄັ້ງທໍາອິດ, ໂດຍການປະຊຸມ, ຄວນຊີ້ໃຫ້ເຫັນຊື່ໄຟລ໌ທີ່ກ່ຽວຂ້ອງກັບໄຟລ໌ທີ່ຖືກປະຕິບັດ. ຂບວນການຊີ້ຕ້ອງ ຖືກລະງັບໂດຍກNULL ຕົວຊີ້.
ທexecle ຫນ້າທີ່ຍັງລະບຸສະພາບແວດລ້ອມຂອງຂະບວນການປະຕິບັດໂດຍປະຕິບັດຕາມNULLpointer ທີ່ສິ້ນສຸດລາຍຊື່ຂອງການໂຕ້ຖຽງໃນລາຍຊື່ພາລາມິເຕີຫຼືຕົວຊີ້ໄປທີ່ ariod array ທີ່ມີພາລາມິເຕີເພີ່ມເຕີມ. ພາລາມິເຕີເພີ່ມເຕີມນີ້ແມ່ນຂບວນການຊີ້ໄປທີ່ສາຍທີ່ຢຸດດ້ວຍ null ແລະຕ້ອງ ຖືກລະງັບໂດຍກNULL ຕົວຊີ້. ໜ້າ ທີ່ອື່ນໆແມ່ນໃຊ້ສະພາບແວດລ້ອມ ສຳ ລັບຮູບພາບຂະບວນການ ໃໝ່ ຈາກຕົວແປພາຍນອກສະພາບແວດລ້ອມ ໃນຂະບວນການປະຈຸບັນ.
ບາງຫນ້າທີ່ເຫຼົ່ານີ້ມີ semantics ພິເສດ.
ໜ້າ ທີ່execlp ແລະexecvp ຈະຊໍ້າກັບການກະ ທຳ ຂອງຫອຍໃນການຊອກຫາເອກະສານທີ່ສາມາດປະຕິບັດໄດ້ຖ້າຊື່ຂອງເອກະສານທີ່ລະບຸບໍ່ມີຕົວອັກສອນ (/). ເສັ້ນທາງຊອກຫາແມ່ນເສັ້ນທາງທີ່ລະບຸໄວ້ໃນສະພາບແວດລ້ອມໂດຍPATH ຕົວປ່ຽນແປງ. ຖ້າຕົວແປນີ້ບໍ່ໄດ້ຖືກລະບຸ, ເສັ້ນທາງເລີ່ມຕົ້ນ ``: / bin: / usr / bin '' ແມ່ນຖືກ ນຳ ໃຊ້. ນອກຈາກນັ້ນ, ຂໍ້ຜິດພາດບາງຢ່າງກໍ່ໄດ້ຮັບການປິ່ນປົວເປັນພິເສດ.
ຖ້າການອະນຸຍາດຖືກປະຕິເສດ ສຳ ລັບເອກະສານ (ຄວາມພະຍາຍາມປະຕິບັດ ກັບຄືນມາEACCES), ໜ້າ ທີ່ເຫຼົ່ານີ້ຈະສືບຕໍ່ຄົ້ນຫາສ່ວນທີ່ເຫຼືອຂອງເສັ້ນທາງຄົ້ນຫາ. ຖ້າບໍ່ພົບເອກະສານອື່ນ, ພວກມັນຈະກັບມາພ້ອມກັບຕົວແປທົ່ວໂລກຜິດພາດ ຕັ້ງຄ່າEACCES.
ຖ້າຫົວຂໍ້ຂອງແຟ້ມຂໍ້ມູນບໍ່ຖືກຮັບຮູ້ (ພະຍາຍາມປະຕິບັດ ກັບຄືນມາENOEXEC), ຫນ້າທີ່ເຫຼົ່ານີ້ຈະປະຕິບັດການແກະທີ່ມີເສັ້ນທາງຂອງເອກະສານເປັນການໂຕ້ຖຽງຄັ້ງທໍາອິດ. (ຖ້າຄວາມພະຍາຍາມນີ້ລົ້ມເຫລວ, ບໍ່ມີການຊອກຫາຕໍ່ໄປ.)
ມູນຄ່າກັບຄືນ
ຖ້າມີຂອງexec ຟັງຊັນກັບຄືນມາ, ຂໍ້ຜິດພາດຈະເກີດຂື້ນ. ມູນຄ່າກັບຄືນແມ່ນ -1, ແລະຕົວແປທົ່ວໂລກຜິດພາດ ຈະຖືກຕັ້ງໃຫ້ສະແດງຄວາມຜິດພາດ.
ໃຊ້ຜູ້ຊາຍ ຄຳ ສັ່ງ (% ຜູ້ຊາຍ) ເພື່ອເບິ່ງວິທີການໃຊ້ ຄຳ ສັ່ງໃນຄອມພິວເຕີ້ຂອງທ່ານ.
ຊື່
execl, execlp, execle, execv, execvp - ປະຕິບັດເອກະສານ
ສະບັບຫຍໍ້
# ປະກອບ ສະພາບແວດລ້ອມ extern char ** ສະພາບແວດລ້ອມ; ex excl (const char *ເສັ້ນທາງ, const char *ໂຕ້ຖຽງ, ... ); int execlp (const char *ແຟ້ມ, const char *ໂຕ້ຖຽງ, ... ); ex execle (const char *ເສັ້ນທາງ, const char *ໂຕ້ຖຽງ , ... , char * constenvp[]); int execv (const char *ເສັ້ນທາງ, char * constargv[]); int execvp (const char *ແຟ້ມ, char * constargv[]);