Tôi biết có thể lấy đường dẫn tuyệt đối của tệp bằng hàm realpath(). Tuy nhiên, theo BUGS phần manpage, có một số vấn đề trong việc thực hiện nó. Các chi tiết được như sau:Làm thế nào để có được đường dẫn tuyệt đối của một tập tin lập trình với realpath() dưới Linux?
LỖI
Tránh sử dụng chức năng này. Nó bị hỏng bởi thiết kế kể từ khi (trừ khi sử dụng tính năng resol_path == NULL không chuẩn) không thể xác định kích thước phù hợp cho bộ đệm đầu ra, resolve_path. Theo POSIX một bộ đệm có kích thước PATH_MAX đủ, nhưng PATH_MAX không cần phải là một hằng số xác định, và có thể phải thu được bằng cách sử dụng pathconf (3). Và yêu cầu pathconf (3) không thực sự hữu ích, vì trên một mặt POSIX cảnh báo rằng kết quả của pathconf (3) có thể rất lớn và không phù hợp với bộ nhớ mallocing. Và mặt khác pathconf (3) có thể trả về -1 để biểu thị rằng PATH_MAX không bị ràng buộc.
Việc triển khai libc4 và libc5 chứa tràn bộ đệm (cố định trong libc-5.4.13). Do đó, các chương trình ID người dùng thiết lập như mount (8) cần một phiên bản riêng.
Vì vậy, câu hỏi là cách tốt nhất để có được đường dẫn tuyệt đối của tệp là gì?
Bản sao "[Lập trình truy xuất đường dẫn tuyệt đối của ứng dụng dòng lệnh OS X] (http://stackoverflow.com/questions/799679/programatically-retrieving-the-absolute-path-of-an-os- x-command-line-app) "? – bortzmeyer
Không. Chúng không giống nhau. Tôi muốn biết làm thế nào để có được đường dẫn tuyệt đối của một tập tin bình thường chứ không phải là con đường thực thi. – jcadam