On Tue, May 16, 2006 at 10:04:08AM +0300, Artem wrote: > Michael A. Kangin wrote: > > On 16 мая 2006 01:37 Artem wrote: > > > >>Да, я уже нашел _одну_ строчку в coreutils-xxx/libs/readutmp.c из-за > >>которой эта вещь происходит. > > > Эта информация скорее уже к coreutils@ . Описанное поведение who (см. > тред) аналогично проявляется и в users. > Предпосылки: > в coreutils-5.94/lib/readutmp.c , line 107, добавили вызов ф-ции: > > if (desirable_utmp_entry (u, options)) > > для отбора записей utmp по определенным критериям > > Причина: > в coreutils-5.94/lib/users.c , line 138, > > switch (argc - optind) > { > case 0: /* users */ > users (UTMP_FILE, READ_UTMP_CHECK_PIDS); > ^^^^^^^^^^^^^^^^^^^^^ > вызов users без параметров, > параметр READ_UTMP.... == 1 > break; > > case 1: /* users */ > users (argv[optind], 0); > ^^^^^^^^^^^^^^^^^^^^^^^ > а вот здесь при users > подставляется "0" и выводится все записи. > > break; > > > Аналогично в coreutils-5.94/src/who.c, line 815 > > case 0: /* who */ > who (UTMP_FILE, READ_UTMP_CHECK_PIDS); > break; > > case 1: /* who */ > who (argv[optind], 0); > break; > > > > Спрашивается: > а) зачем добавлено такое поведение? > б) почему не сказано ничего в man ? > в) это бага? Или фича? 2005-03-30 Paul Eggert * src/pinky.c (short_pinky): Adjust to read_utmp signature change. * src/uptime.c (uptime): New arg OPTIONS. All uses changed. * src/users.c (users): Likewise. * src/who.c (who): Likewise. * src/uptime.c (main): Check PIDs when invoked with zero arguments. * src/users.c (main): Likewise. * src/who.c (main): Likewise. Also with two arguments. Omit duplicate code in 2-arg case. (UT_PID): Moved to ../lib/readutmp.h. -- ldv