Có chức năng POSIX nào tìm kiếm PATH
để thực thi theo POSIX spec's description of the PATH
environment variable và trả về đường dẫn tuyệt đối cho tệp thực thi không?Chức năng POSIX để tìm kiếm PATH cho một tệp thực thi?
Nếu không, có cách đơn giản, an toàn, tiêu chuẩn và đáng tin cậy để tìm kiếm PATH
không?
Edit: glibc's execvpe()
function không PATH
tìm kiếm riêng của mình, vì vậy tôi đoán đó không phải là một chức năng PATH
tìm kiếm cụ thể được xác định bởi tiêu chuẩn.
Chỉnh sửa 2: Tôi không muốn để sao chép mã của người khác hoặc thực hiện các PATH
tìm kiếm bản thân mình vì một vài lý do:
- DRY
- Nhiều mã tôi phải kiểm tra và duy trì
- Các vấn đề cấp phép có thể xảy ra
- POSIX nói, "Nếu
PATH
chưa được đặt hoặc được đặt thành không, tìm kiếm đường dẫn sẽ được xác định thực hiện". Tôi muốn hành vi trong những trường hợp này phù hợp với bất kỳ hệ thống nào, nhưng tôi không thể làm điều này nếu không có chức năng chuẩn mà tôi có thể gọi.
'execvp' và' execlp' là các hàm chuẩn POSIX. Bạn đang tìm kiếm một hàm * chỉ * tìm kiếm '$ PATH'? –
@larsmans: có, và trả về một chuỗi chứa đường dẫn đầy đủ đến tệp thực thi (nếu được tìm thấy) –