Как правильно определить NAME_MAX для shm_open?Linux

Ответить
Anonymous
 Как правильно определить NAME_MAX для shm_open?

Сообщение Anonymous »

На странице руководства по shm_open мы видим, что длина аргумента параметра name должна составлять до NAME_MAX символов для переносимого использования.
Однако в разделе Справочного руководства по библиотеке GNU C, озаглавленном «Ограничения на емкость файловой системы», мы видим, что NAME_MAX не определено в «limits.h» в системе, если оно «разрешает разные файловые системы или файлы». чтобы иметь разные ограничения. Вместо этого нам говорят использовать pathconf.
Однако pathconf требует фактического пути (или файлового дескриптора), какой путь следует использовать. мы используем объекты общей памяти, используемые shm_open. Насколько я понимаю, это обрабатывается внутри glibc. В Linux это часто, но не обязательно, "/dev/shm".Я бы предпочел не использовать 255 напрямую, как указано на странице руководства для shm_open. Просто использовать «/» не кажется хорошей идеей, поскольку «/dev». /shm" часто представляет собой tmpfs, который отличается от корневой файловой системы.
Я попробовал получить файлы заголовков и выходные данные getconf -a и просмотреть другие связанные страницы руководства. , но я не вижу ничего о том, как это сделать.
Я нашел код, который открывает объект общей памяти в glibc, но это было совершенно бесполезно, поскольку он по сути жестко запрограммирован. Может быть, это означает, что я недооцениваю переносимость "/dev/shm"?< /п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... r-shm-open
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»