ซอฟต์แวร์

คำสั่ง Linux / Unix 'execvp'

ผู้เขียน: Robert Simon
วันที่สร้าง: 22 มิถุนายน 2021
วันที่อัปเดต: 12 พฤษภาคม 2024
Anonim
คำสั่ง Linux / Unix 'execvp' - ซอฟต์แวร์
คำสั่ง Linux / Unix 'execvp' - ซอฟต์แวร์

เนื้อหา

exec ตระกูลของฟังก์ชั่นแทนที่ภาพกระบวนการปัจจุบันด้วยภาพกระบวนการใหม่ ฟังก์ชั่นที่อธิบายไว้ที่นี่เป็นส่วนหน้าสำหรับฟังก์ชั่นexecve(2). 

อาร์กิวเมนต์เริ่มต้นสำหรับฟังก์ชั่นเหล่านี้คือชื่อพา ธ ของไฟล์ที่จะดำเนินการ

const char * หาเรื่อง และจุดไข่ปลาที่ตามมาในexeclexeclpและexecle ฟังก์ชั่นสามารถคิดเป็นarg0arg1, ..., argn. พวกเขาช่วยกันอธิบายรายการของพอยน์เตอร์หนึ่งตัวหรือมากกว่าไปยังสตริงที่สิ้นสุดด้วยค่า null ซึ่งแสดงรายการอาร์กิวเมนต์ที่มีให้กับโปรแกรมที่เรียกใช้งาน อาร์กิวเมนต์แรกโดยการประชุมควรชี้ไปที่ชื่อไฟล์ที่เกี่ยวข้องกับไฟล์ที่กำลังดำเนินการ รายการข้อโต้แย้งต้อง ถูกยกเลิกโดยโมฆะ ตัวชี้


execv และexecvp ฟังก์ชั่นให้อาร์เรย์ของตัวชี้ไปยังสตริงสิ้นสุดด้วย null ที่แสดงรายการอาร์กิวเมนต์ที่มีให้กับโปรแกรมใหม่ อาร์กิวเมนต์แรกโดยการประชุมควรชี้ไปที่ชื่อไฟล์ที่เกี่ยวข้องกับไฟล์ที่กำลังดำเนินการ อาเรย์ของพอยน์เตอร์ต้อง ถูกยกเลิกโดยโมฆะ ตัวชี้

execle ฟังก์ชั่นยังระบุสภาพแวดล้อมของกระบวนการที่ดำเนินการโดยทำตามโมฆะตัวชี้ที่ยุติรายการอาร์กิวเมนต์ในรายการพารามิเตอร์หรือตัวชี้ไปยังอาร์เรย์ argv ด้วยพารามิเตอร์เพิ่มเติม พารามิเตอร์เพิ่มเติมนี้คืออาร์เรย์ของพอยน์เตอร์เป็นสตริงที่สิ้นสุดด้วยค่า null และต้อง ถูกยกเลิกโดยโมฆะ ตัวชี้ ฟังก์ชั่นอื่นใช้สภาพแวดล้อมสำหรับภาพกระบวนการใหม่จากตัวแปรภายนอกสภาพแวดล้อม ในกระบวนการปัจจุบัน

ฟังก์ชันเหล่านี้บางส่วนมีความหมายพิเศษ

ส่วนฟังก์ชั่นexeclp และexecvp จะทำซ้ำการกระทำของเชลล์ในการค้นหาไฟล์เรียกทำงานหากชื่อไฟล์ที่ระบุไม่มีอักขระเครื่องหมายทับ (/) เส้นทางการค้นหาคือเส้นทางที่ระบุในสภาพแวดล้อมโดยเส้นทาง ตัวแปร. หากไม่ได้ระบุตัวแปรนี้จะใช้พา ธ เริ่มต้น ``: / bin: / usr / bin '' นอกจากนี้ข้อผิดพลาดบางอย่างจะได้รับการดูแลเป็นพิเศษ


หากสิทธิ์ถูกปฏิเสธสำหรับไฟล์ (ความพยายามexecve กลับEACCES) ฟังก์ชั่นเหล่านี้จะค้นหาส่วนที่เหลือของเส้นทางการค้นหาต่อไป หากไม่พบไฟล์อื่นไฟล์เหล่านั้นจะกลับมาพร้อมกับตัวแปรโกลบอลerrno ตั้งค่าให้EACCES.

หากส่วนหัวของไฟล์ไม่เป็นที่รู้จัก (ความพยายามexecve กลับENOEXEC) ฟังก์ชั่นเหล่านี้จะรันเชลล์ด้วยพา ธ ของไฟล์เป็นอาร์กิวเมนต์แรก (หากความพยายามนี้ล้มเหลวจะไม่มีการค้นหาเพิ่มเติมอีก)

ส่งคืนค่า

หากใด ๆ ของexec ฟังก์ชันจะส่งคืนข้อผิดพลาดจะเกิดขึ้น ค่าส่งคืนคือ -1 และตัวแปรโกลบอลerrno จะถูกตั้งค่าเพื่อระบุข้อผิดพลาด

ใช้ชาย คำสั่ง (% ชาย) เพื่อดูว่ามีการใช้คำสั่งในคอมพิวเตอร์ของคุณโดยเฉพาะอย่างไร

ชื่อ

execl, execlp, execle, execv, execvp - รันไฟล์


สรุป

#include

extern ถ่าน ** สภาพแวดล้อม;

int execl (const char *เส้นทาง, const char *หาเรื่อง, ... ); int execlp (const char *ไฟล์, const char *หาเรื่อง, ... ); int execle (const char *เส้นทาง, const char *หาเรื่อง , ... , char * constenvp[]); int execv (const char *เส้นทางถ่าน *argv[]); int execvp (กลุ่มถ่าน *ไฟล์ถ่าน *argv[]);  

เป็นที่นิยม

น่าสนใจวันนี้

รหัสภูมิภาคของ Blu-ray และ HD-DVD: สิ่งที่ควรรู้
ชีวิต

รหัสภูมิภาคของ Blu-ray และ HD-DVD: สิ่งที่ควรรู้

เมื่อคุณซื้อแผ่น DVD หรือ Blu-ray คุณจะถือว่าแผ่นดิสก์นั้นเล่นบนเครื่องเล่น DVD หรือ Blu-ray อย่างไรก็ตามขึ้นอยู่กับสถานที่ที่คุณซื้อเครื่องเล่นหรือแผ่นดิสก์ซึ่งอาจไม่ใช่ทุกกรณี Blu-ray มีรูปแบบการเข...
วิธีเชื่อมต่อโทรศัพท์บ้านทั้งหมดของคุณเข้ากับบริการ VoIP ของคุณ
อินเทอร์เน็ต

วิธีเชื่อมต่อโทรศัพท์บ้านทั้งหมดของคุณเข้ากับบริการ VoIP ของคุณ

ระบบโทรศัพท์ก่อนที่เราทุกคนจะได้รับโทรศัพท์ก็คือ Public witched Telephone Network (PTN) - โทรศัพท์พื้นฐานในการพูดจาสมัยใหม่ เจ้าของบ้านและเจ้าของธุรกิจจำนวนมากเปลี่ยนมาใช้ Voice over Internet Protoco...