ຊອຟແວ

Linux / Unix Command 'execvp'

ກະວີ: Robert Simon
ວັນທີຂອງການສ້າງ: 22 ມິຖຸນາ 2021
ວັນທີປັບປຸງ: 12 ເດືອນພຶດສະພາ 2024
Anonim
EECS 338 - using execvp
ວິດີໂອ: EECS 338 - using execvp

ເນື້ອຫາ

exec ຄອບຄົວຂອງ ໜ້າ ທີ່ແທນຮູບພາບຂະບວນການໃນປະຈຸບັນດ້ວຍຮູບພາບຂະບວນການ ໃໝ່. ໜ້າ ທີ່ອະທິບາຍຢູ່ນີ້ແມ່ນ ໜ້າ ທີ່ ສຳ ລັບ ໜ້າ ທີ່ປະຕິບັດ(2). 

ການໂຕ້ຖຽງໃນເບື້ອງຕົ້ນ ສຳ ລັບ ໜ້າ ທີ່ເຫຼົ່ານີ້ແມ່ນ pathname ຂອງແຟ້ມເອກະສານທີ່ຕ້ອງປະຕິບັດ.

const char * arg ແລະແຜ່ນໃບມົນໃນຕໍ່ມາexeclexeclp, ແລະexecle ຫນ້າທີ່ສາມາດຄິດວ່າເປັນarg0arg1, ..., ຖືພາ. ພ້ອມກັນພວກເຂົາອະທິບາຍບັນຊີລາຍຊື່ຂອງຜູ້ຊີ້ບອກ ໜຶ່ງ ຫຼືຫຼາຍຈຸດຕໍ່ບັນດາສາຍເຊືອກທີ່ສິ້ນສຸດລົງເຊິ່ງເປັນຕົວແທນຂອງລາຍຊື່ການໂຕ້ຖຽງທີ່ມີຢູ່ກັບໂປແກມທີ່ຖືກປະຕິບັດ. ການໂຕ້ຖຽງຄັ້ງທໍາອິດ, ໂດຍການປະຊຸມ, ຄວນຊີ້ໃຫ້ເຫັນຊື່ໄຟລ໌ທີ່ກ່ຽວຂ້ອງກັບໄຟລ໌ທີ່ຖືກປະຕິບັດ. ບັນຊີລາຍຊື່ຂອງການໂຕ້ຖຽງຕ້ອງ ຖືກລະງັບໂດຍກ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[]);  

ຫນ້າສົນໃຈຢູ່ໃນເວັບໄຊທ໌້

ພວກເຮົາແນະນໍາ

ການສ້າງຕາຕະລາງແລະກາຟຈາກຂໍ້ມູນຕາຕະລາງ
ຊອຟແວ

ການສ້າງຕາຕະລາງແລະກາຟຈາກຂໍ້ມູນຕາຕະລາງ

ເນັ້ນແລະຄັດລອກຕາຕະລາງທັງ ໝົດ. ວາງຕົວກະພິບໃສ່ບ່ອນທີ່ທ່ານຕ້ອງການໃສ່ໃນຕາຕະລາງ. ໄປ​ຫາ ໃສ່ > ຕາຕະລາງ ແລະເລືອກແບບແຜນພູມ. ເລືອກ ຕົກ​ລົງ ເພື່ອເພີ່ມຕາຕະລາງໃສ່ເອກະສານຂອງເຈົ້າ. ຢູ່ໃນປ່ອງຢ້ຽມ Excel ທີ່ປາກົດ, ວາງ...
ວິທີການແກ້ໄຂເມື່ອຂໍ້ມູນມືຖືບໍ່ເຮັດວຽກ
ເທກໂນໂລຍີ

ວິທີການແກ້ໄຂເມື່ອຂໍ້ມູນມືຖືບໍ່ເຮັດວຽກ

ເຖິງວ່າໂທລະສັບສະມາດໂຟນສາມາດ ນຳ ໃຊ້ໄດ້ທັງ ໝົດ, ແຕ່ການເຊື່ອມຕໍ່ 4G ແລະ 5G ບາງຄັ້ງກໍ່ສາມາດຢຸດການເຮັດວຽກໄດ້ແລະເຮັດໃຫ້ທ່ານສົງໄສວ່າ "ເປັນຫຍັງຂໍ້ມູນໂທລະສັບມືຖືຂອງຂ້ອຍບໍ່ເຮັດວຽກ?" ຂໍ້ຜິດພາດໃນການເຊື...