Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 18 апр 2019, 16:29




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Получить максимальную длину пути
СообщениеДобавлено: 25 июн 2006, 16:57 
Интересующийся
Аватара пользователя

У нас с: 24.06.2006
Сообщения: 54
Откуда: Minsk
В винде есть define MAX_PATH установленный в 256 (или 260).
Как выяснить максимальную длину пути в линуксе?

_________________
Regards, _Andrey_
http://www.wegroup.org


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 25 июн 2006, 18:59 
Увлекающийся
Аватара пользователя

У нас с: 30.10.2005
Сообщения: 106
[raven@sewer ~]$ grep PATH /usr/include/linux/limits.h
#define PATH_MAX 4096 /* # chars in a path name including nul */


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 25 июн 2006, 19:22 
Интересующийся
Аватара пользователя

У нас с: 24.06.2006
Сообщения: 54
Откуда: Minsk
Э нет, не то, почему ./configure вычисляет значение в 32K на моей конфигурации?
Про такой путь я сегодня читал, но с толку сбивает рез-т ./configure

_________________
Regards, _Andrey_
http://www.wegroup.org


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2006, 12:56 
Неотъемлемая часть форума

У нас с: 12.08.2003
Сообщения: 250
Видимо, configure вычисляет что-то другое.

В ядре Linux (по крайней мере, ванильном 2.6.16.20) органичение на длину пути 4096.

Маленький тест это подтверждает:
Код:
#!/usr/bin/ruby
path = "."
begin
        loop { File::stat(path << "/.") }
rescue
        puts "Exceeded length at #{path.length}"
end


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 28 июн 2006, 11:32 
Заглянувший

У нас с: 15.11.2004
Сообщения: 32
#include <unistd>

int main() {
printf("%d",sysconf(_PC_PATH_MAX ));
}


у меня показывает 1024


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 28 июн 2006, 12:10 
Интересующийся
Аватара пользователя

У нас с: 24.06.2006
Сообщения: 54
Откуда: Minsk
Огромное спасибо! Это то, что мне и надо.

_________________
Regards, _Andrey_
http://www.wegroup.org


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 28 июн 2006, 12:32 
Интересующийся
Аватара пользователя

У нас с: 24.06.2006
Сообщения: 54
Откуда: Minsk
В моем случае sysconf(_PC_PATH_MAX) вернул 1024.
Не понимаю, почему разнятся рез-ты.

_________________
Regards, _Andrey_
http://www.wegroup.org


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 01 июл 2006, 00:06 
Неотъемлемая часть форума

У нас с: 12.08.2003
Сообщения: 250
Вообще-то _PC_PATH_MAX надо передавать в pathconf или в fpathconf.

см. man pathconf.

Так правильно:
Код:
#include <unistd>
#include <stdio>

int main()
{
        printf("%d\n", pathconf("/", _PC_PATH_MAX));
}


И результат - 4096.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100