На протяжении исходный код CoreFoundation, вызовы API файловой системы POSIX (например, open()
, stat()
и др.) являются завернутый в идиому, в котором дескриптор /dev/autofs_nowait
приобретается - с open(…, 0)
- до того, как будут сделаны вызовы POSIX; после этого дескриптор close()
d до выхода области.
-
Какая польза от этого? Каковы риски?
-
Приобретает ли дескриптор
/dev/autofs_nowait
какое-либо влияние на флаговые или связанные с ним потокиopen()
(например,O_NONBLOCK
)? -
/dev
на моей машине, в OS X 10.10.5 есть другие записи "autofs":... ни один из которых не имеет доступных страниц
man
. Если эти файловые устройства могут предложить преимущества в этом ключе, мне было бы интересно услышать об их использовании, как это может быть.
Приложение: я не мог найти много на эту тему; a Сообщение Google Plus от 2011 года утверждает, что:
[t] его файл является специальным устройством, которое контролируется autofs реализация файловой системы в ядре. При открытии autofs файловая система не будет блокировать этот процесс при любых операциях ввода-вывода на файловая система autofs.
Я не совсем уверен, что это значит (они конкретно говорили о том, как работает launchd
, FWIW), но мне это было любопытно, поэтому я написал quick context-manager-y RAII struct в попробуйте - нецелевое профилирование показывает тесты с вызовами POSIX, выполняющимися быстрее, но внутри общих хэш-знаков; Я исследую эту тактику с более тонкой гребенкой после того, как я получу больше информации о том, как все это работает.