2012-01-23 21 views
6

Chức năng glob có một lá cờ GLOB_MARK đó là quy định để nối thêm một dấu gạch chéo để kết quả là thư mục:Có nên sử dụng GLOB_MARK, nối thêm/vào kết quả liên kết tượng trưng đến thư mục không?

GLOB_MARK

Mỗi tên đường dẫn đó là một thư mục phù hợp với mô hình có trách nhiệm một <slash> nối.

(Nguồn: http://pubs.opengroup.org/onlinepubs/9699919799/functions/glob.html)

Tuy nhiên, như xa như tôi có thể nói, không có thêm thông tin chi tiết được cung cấp về cách tính năng này được cho là để làm việc. Đặc biệt, nếu kết quả không phải là một thư mục, nhưng là một liên kết tượng trưng cho một thư mục, thì dấu gạch chéo có được nối thêm không? Việc triển khai glibc thực hiện điều này.

Tôi biết đây là câu hỏi khó trả lời cho tiêu chuẩn cho glob, vì vậy câu trả lời hay sẽ là những câu trích dẫn lịch sử, tiêu chuẩn lịch sử hoặc tài liệu không phải POSIX có thể xác định rõ hơn hành vi của glob, v.v. Câu trả lời đưa ra lý do tại sao một hành vi hoặc hành vi khác hữu ích hơn cũng sẽ rất thú vị.

Trả lời

1

Từ chi nhánh nghiên cứu không chính thức nhóm riêng của tôi: ;-)

glob (3) đầu tiên xuất hiện trong bsd4.3-reno vào năm 1989 và nó gắn '/' sau symlink thư mục với GLOB_MARK

http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/lib/libc/gen/glob.c

(glob2 sử dụng stat, không lstat trên pathbuf)

solaris có một glob với bình luận về bản quyền từ năm 1985

mà người ta thêm '/' vào đường dẫn liên kết tượng trưng cũng như