Perl getpwuid () и getpwnam () - PullRequest
       14

Perl getpwuid () и getpwnam ()

1 голос
/ 22 июля 2011

Я изучаю системные инструменты Perl * nix и несколько минут смотрю на следующие два предложения:

Вы можете думать о операторах getpwuid () и getpwnam () как произвольный доступ - они захватывают определенную запись по ключу, поэтому вам нужно иметь ключ для начала.Другой способ доступа к файлу паролей - последовательный доступ - захват каждой записи в некотором явно случайном порядке.

Я на 99% уверен, что это опечатка, но если этоне я явно упускаю ключевую идею.Кто-нибудь может пролить свет на эту тему?

Заранее спасибо.

1 Ответ

1 голос
/ 22 июля 2011

Не опечатка, но очень плохо сформулирована. getpwuid ищет запись passwd по UID. getpwnam ищет ввод пароля по имени. Это «произвольный доступ», как системная память - «произвольный доступ»; Вы можете выбрать ту, которая вам нужна, предоставив ключ . (Для системной памяти «ключ» - это адрес. Для getpwuid ключ - это UID. Для getpwnam ключ - это имя.)

Это в отличие от getpwent, который просто возвращает «следующую» запись из файла passwd. Записи будут возвращены в неуказанном порядке. Это «последовательный доступ», как чтение файла с диска. Хотя для getpwent вы не знаете, в каком порядке появятся результаты.

Формулировка вводит в заблуждение, потому что они используют слово «случайный» как для фразы «произвольный доступ» (как в памяти), так и для «явно случайного порядка» (под которым они подразумевают «неопределенный порядок»).

Они должны были сказать «неопределенный порядок» или «неопределенный порядок», а не «явно случайный порядок».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...