Однако в разделе Справочного руководства по библиотеке GNU C, озаглавленном «Ограничения на емкость файловой системы», мы видим, что NAME_MAX не определено в «limits.h» в системе, если оно «разрешает разные файловые системы или файлы». чтобы иметь разные ограничения. Вместо этого нам говорят использовать pathconf.
Однако pathconf требует фактического пути (или файлового дескриптора), какой путь следует использовать. мы используем объекты общей памяти, используемые shm_open. Насколько я понимаю, это обрабатывается внутри glibc. В Linux это часто, но не обязательно, "/dev/shm".Я бы предпочел не использовать 255 напрямую, как указано на странице руководства для shm_open. Просто использовать «/» не кажется хорошей идеей, поскольку «/dev». /shm" часто представляет собой tmpfs, который отличается от корневой файловой системы.
Я попробовал получить файлы заголовков и выходные данные getconf -a и просмотреть другие связанные страницы руководства. , но я не вижу ничего о том, как это сделать.
Я нашел код, который открывает объект общей памяти в glibc, но это было совершенно бесполезно, поскольку он по сути жестко запрограммирован.
- https://github.com/lattera/glibc/blob/m ... shm_open.c
< li>https://github.com/lattera/glibc/blob/m ... irectory.h - https://github.com/lattera/glibc/ blob/master/sysdeps/posix/shm-directory.c
Подробнее здесь: https://stackoverflow.com/questions/791 ... r-shm-open
Мобильная версия