Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Andriy Gapon                         2:5020/400     02 Feb 2006  20:50:46
 To : Dmitry Pryanishnikov
 Subject : Re: Облом ls
 -------------------------------------------------------------------------------- 
 
 on 02/02/2006 09:25 Dmitry Pryanishnikov said the following:
 
 >   В UNIX-подобных системах (в отличие, скажем, от той же OpenVMS) 
 > предобработкой командной строки занимается шелл, и это его работа
 > (а не утилиты) - вместо '*' подставить список файлов в текущей директории.
 > Hедостаток такого подхода очевиден: если общая длина развернутого шеллом
 > списка превышает некое максимальное значение (во FreeBSD его можно
 > получить командой "sysctl kern.argmax"), шеллу просто не удается "пропихнуть"
 > список аргументов утилите (виртуальная память, выделяемая для нужд ядра, все 
 > же не резиновая). Если же мы просто запускаем ls, то сама наша утилита, 
 > обнаружив пустой список аргументов, "добывает" список файлов, читая текущую 
 > директорию. Здесь уже такого жесткого ограничения по размеру директории нет, 
 > тем более что и сразу зачитывать весь список в память необходимости нет (в 
 > отличие от команды "ls *").
 
 хочу добавить сразу, что в балете может принимать участие и
 среда/переменные окружения (environment), детали здесь:
 http://www.in-ulm.de/~mascheck/various/argmax/
 
 Вот что пишет execve(2) на FreeBSD:
    [E2BIG]        The number of bytes in the new process' argument list
                   is larger than the system-imposed limit.  This limit
                   is specified by the sysctl(3) MIB variable
                   KERN_ARGMAX.
 
 А вот что пишет POSIX:
 http://www.opengroup.org/onlinepubs/009695399/functions/execve.html
 [E2BIG] The number of bytes used by the new process image's argument
 list and environment list is greater than the system-imposed limit of
 {ARG_MAX} bytes.
 
 -- 
 Andriy Gapon
 --- ifmail v.2.15dev5.3
  * Origin: Anonymous Partisans Online (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Облом ls   Andriy Gapon   02 Feb 2006 20:50:46 
Архивное /ru.unix.bsd/98737ca3b062.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional