strace báo cáo đường dẫn tương đối không chính xác?


0

Tôi đang sử dụng straceđể báo cáo openchdirgọi hệ thống, và một phần của đầu ra của nó là:

6791  chdir("//etc")                    = 0
6791  open("etc/fstab", O_RDONLY)       = 3

Điều này không có ý nghĩa. Đầu tiên chúng ta xuống /etcthư mục, sau đó cùng một quá trình cố gắng mở tệp tương đối etc/fstabtừ đó. Cuộc gọi thành công, nhưng không có tập tin đó /etc/etc/fstab. Chỉ có tập tin /etc/fstab.

Tại sao strace báo cáo etc/fstabvà không /etc/fstabnhư nó nên?

Câu trả lời:


0

Chà ... rõ ràng POSIX cho phép một thứ như một dấu gạch chéo kép hàng đầu trong tên đường dẫn. Nó có nghĩa, không phải thư mục gốc như người ta nghĩ, mà là phụ thuộc vào việc thực hiện. Tôi đoán trong trường hợp //etcnày là thực sự giống như /. Tôi biết điều này thật điên rồ, nhưng đây là điều duy nhất tôi có thể nghĩ ra.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.