Должен ли glob с GLOB_MARK добавлять / к результатам символической ссылки на каталог?

Функция glob имеет флаг GLOB_MARK, указанный для добавления косой черты к результатам, которые являются каталогами:

GLOB_MARK

К каждому имени пути, которое является каталогом, соответствующим шаблону, должно быть добавлено <slash>.

(Источник: http://pubs.opengroup.org/onlinepubs/9699919799/functions/glob.html)

Однако, насколько я могу судить, никаких дополнительных подробностей о том, как эта функция должна работать, не приводится. В частности, если результатом является не сам каталог, а символическая ссылка на каталог, следует ли добавлять косую черту? Реализация glibc делает это.

Я знаю, что на этот вопрос сложно ответить, учитывая краткость стандарта для glob, поэтому хорошими ответами будут те, которые цитируют историческую практику, исторические стандарты или документацию, отличную от POSIX, которая может дополнительно определять поведение glob и т. д. Ответы, которые приносят Также было бы интересно выяснить причины, почему то или иное поведение более полезно.


person R.. GitHub STOP HELPING ICE    schedule 23.01.2012    source источник


Ответы (1)


Из неофициальной исследовательской ветки моей собственной команды: ;-)

glob(3) впервые появился в bsd4.3-reno в 1989 году и добавлял '/' после символических ссылок на каталоги с GLOB_MARK.

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

(glob2 использует stat, а не lstat в pathbuf)

У Solaris есть глобус с комментарием об авторских правах от 1985 года.

что он также добавляет '/' к путям символических ссылок

person R.. GitHub STOP HELPING ICE    schedule 24.01.2012