[sisyphus] coreutils, who )

Artem =?iso-8859-1?q?x-console_=CE=C1_yandex=2Eru?=
Вт Май 16 11:04:08 MSD 2006


Michael A. Kangin wrote:
> On 16 мая 2006 01:37 Artem <x-console на yandex.ru> wrote:
> 
> 
>>Да, я уже нашел _одну_ строчку  в coreutils-xxx/libs/readutmp.c из-за
>>которой эта вещь происходит. 
> 
> 
Эта информация скорее уже к coreutils@ . Описанное поведение who (см.
тред) аналогично проявляется и в users.
Предпосылки:
в coreutils-5.94/lib/readutmp.c , line 107, добавили вызов ф-ции:
<skip>
if (desirable_utmp_entry (u, options))
<skip>
для отбора записей utmp по определенным критериям

Причина:
в coreutils-5.94/lib/users.c , line 138,
<skip>
   switch (argc - optind)
    {
    case 0:                     /* users */
      users (UTMP_FILE, READ_UTMP_CHECK_PIDS);
                        ^^^^^^^^^^^^^^^^^^^^^
                        вызов users без параметров,
                        параметр READ_UTMP.... == 1
      break;

    case 1:                     /* users <utmp file> */
      users (argv[optind], 0);
      ^^^^^^^^^^^^^^^^^^^^^^^
      а вот здесь при users <utmp file>
      подставляется "0" и выводится все записи.

      break;
<skip>

Аналогично в coreutils-5.94/src/who.c, line 815
<skip>
    case 0:                     /* who */
      who (UTMP_FILE, READ_UTMP_CHECK_PIDS);
      break;

    case 1:                     /* who <utmp file> */
      who (argv[optind], 0);
      break;

<skip>

Спрашивается:
а) зачем добавлено такое поведение?
б) почему не сказано ничего в man ?
в) это бага? Или фича?

-- 
Rgds, Artem.





Подробная информация о списке рассылки Sisyphus