2

При вызове без аргументов команды env и printenv из GNU Coreutils выводят значение каждой переменной среды. Что определяет порядок, в котором эти переменные печатаются? Это не алфавитный порядок и не порядок, в котором были установлены переменные.

1 ответ1

4

У каждого процесса есть список строк, которые он поддерживает в качестве своего окружения. Когда вы добавляете, изменяете или удаляете элементы из этого списка, библиотека времени выполнения должна обновить соответствующий массив. Поскольку не существует стандартного требования для поддержания этого в отсортированной форме, среда выполнения использует то, что разработчики решили, что это самый быстрый способ обновить список. Производительность - вот что определяет порядок.

Конечно, для получения дополнительной информации, исходный код env доступен для проверки. Он печатает окружающую среду в том порядке, environ массив использует.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .