/var/run/utmp: FoxPro FPT

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

/var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

Всем привет.

Я наверное что-то не так понимаю, но файл /var/run/utmp имеет формат FoxPro FPT, который, если информация в wiki верна, принадлежит и поддерживается Microsoft. Зачем используется именно этот формат? Или file(1) выдает что-то не так?

Код: Выделить всё

file /var/run/utmp
/var/run/utmp: FoxPro FPT, blocks size 0, next free block index 33554432
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4458
Статус: GNU generation
ОС: Debian GNU/Linux

Re: /var/run/utmp: FoxPro FPT

Сообщение Rootlexx »

У меня file определяет содержимое этого файла просто как data.
Учитывая, что формат, используемый в GNU/Linux, является модификацией использовавшегося в System V, который вышел ощутимо раньше первой версии FoxPro, сильно сомневаюсь, что они как-то связаны.
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: /var/run/utmp: FoxPro FPT

Сообщение yars »

А в каком дистрибутиве? OpenSUSE? Тогда все может быть, но я бы на всякий случай сравнил формат файла с форматом FoxPro... но, раз последний закрыт, как может первый иметь формат второго?
P.S. Взгляните на utmp.h, там описана реализация формата.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: /var/run/utmp: FoxPro FPT

Сообщение Hephaestus »

Stauffenberg писал(а):
03.08.2015 17:20
Или file(1) выдает что-то не так?
Да, скорее всего, file ошибается. Полагаю, что его научили распознавать FPT, а здесь нашлось нечто похожее.
В Slackware этот файл тоже определяется как FPT.
FPT - это вообще файл примечаний, содержащий memo-поля базы данных dbf.
memo-поле - это такая штука, которая может содержать любые данные, в отличие от структурированных полей dbf.
Таким образом, FPT - это практически бинарный файл. И определение его как data более чем корректно.
В данном случае, думаю, это совпадение.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

Ок, отправлю тогда багрепорт. Хотя было бы здорово сначала узнать какого именно формата должен быть этот файл.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: /var/run/utmp: FoxPro FPT

Сообщение Hephaestus »

Stauffenberg писал(а):
04.08.2015 10:01
Хотя было бы здорово сначала узнать какого именно формата должен быть этот файл.
man utmp(5). Вроде старо, но хоть что-то.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

Hephaestus писал(а):
04.08.2015 11:01
Stauffenberg писал(а):
04.08.2015 10:01
Хотя было бы здорово сначала узнать какого именно формата должен быть этот файл.
man utmp(5). Вроде старо, но хоть что-то.

Что-то я не нашел там про формат. В какой именно части?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: /var/run/utmp: FoxPro FPT

Сообщение Hephaestus »

Stauffenberg писал(а):
04.08.2015 12:00
Что-то я не нашел там про формат. В какой именно части?
Там описана структура самого файла. А формат бинарный, это же ясно.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

Hephaestus писал(а):
04.08.2015 12:26
Stauffenberg писал(а):
04.08.2015 12:00
Что-то я не нашел там про формат. В какой именно части?
Там описана структура самого файла.

Там описана структура utmp.h. Это совсем другой файл.

Hephaestus писал(а):
04.08.2015 12:26
А формат бинарный, это же ясно.

Не формат, а тип бинарный. ELF или PE тоже бинарные, но форматы у них разные.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: /var/run/utmp: FoxPro FPT

Сообщение yars »

Про utmp.h, по идее, должна быть utmp(3), а в (5) про сам файл.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

yars писал(а):
04.08.2015 13:16
Про utmp.h, по идее, должна быть utmp(3), а в (5) про сам файл.

Я исхожу из того, что во-первых,

Код: Выделить всё

SYNOPSIS
       #include <utmp.h>


Во-вторых, далее идет описание структуры utmp:

Код: Выделить всё

           struct utmp {
               short   ut_type;              /* Type of record */
               pid_t   ut_pid;               /* PID of login process */
               char    ut_line[UT_LINESIZE]; /* Device name of tty - "/dev/" */
               char    ut_id[4];             /* Terminal name suffix,
                                                or inittab(5) ID */
               char    ut_user[UT_NAMESIZE]; /* Username */
               char    ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or
                                                kernel version for run-level
                                                messages */
               struct  exit_status ut_exit;  /* Exit status of a process
                                                marked as DEAD_PROCESS; not
                                                used by Linux init(8) */
               /* The ut_session and ut_tv fields must be the same size when
                  compiled 32- and 64-bit.  This allows data files and shared
                  memory to be shared between 32- and 64-bit applications. */
           #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
               int32_t ut_session;           /* Session ID (getsid(2)),
                                                used for windowing */
               struct {
                   int32_t tv_sec;           /* Seconds */
                   int32_t tv_usec;          /* Microseconds */
               } ut_tv;                      /* Time entry was made */
           #else
                long   ut_session;           /* Session ID */
                struct timeval ut_tv;        /* Time entry was made */
           #endif

               int32_t ut_addr_v6[4];        /* Internet address of remote
                                                host; IPv4 address uses
                                                just ut_addr_v6[0] */
               char __unused[20];            /* Reserved for future use */
           };

Эта структура из файла /usr/include/bits/utmp.h, который подключается в /usr/include/utmp.h.

Но как мы выяснили в сообщении 3, в openSUSE все может быть, так что не стоит по этому поводу особо ломать голову :)
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: /var/run/utmp: FoxPro FPT

Сообщение Hephaestus »

Stauffenberg писал(а):
04.08.2015 12:53
Там описана структура utmp.h. Это совсем другой файл.
Не-а. См. англоязычную страницу, там точнее
The file is a sequence of utmp structures, declared as follows in <utmp.h>

Этот файл представляет собой последовательность элементов со следующей структурой (заметим, что в данном случае указано только одно из нескольких определений; детали зависят от версии libc)
То есть в utmp.h описание структуры элементов, а в файле utmp - сами эти элементы.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

Hephaestus писал(а):
04.08.2015 14:13
Stauffenberg писал(а):
04.08.2015 12:53
Там описана структура utmp.h. Это совсем другой файл.
Не-а. См. англоязычную страницу, там точнее

Так, стоп, а кто мне дал ссылку на русскую? :blush:


Hephaestus писал(а):
04.08.2015 14:13
То есть в utmp.h описание структуры элементов, а в файле utmp - сами эти элементы.

Ну это обычно всегда так в С :)
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: /var/run/utmp: FoxPro FPT

Сообщение Hephaestus »

Stauffenberg писал(а):
04.08.2015 15:10
Так, стоп, а кто мне дал ссылку на русскую?
А сам чего? Маленький что ли?
Я дал первое, что нагуглилось. Там в общем-то, всё ясно.
Но если уж одолевают сомнения, можно глянуть оригинал.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

Hephaestus писал(а):
04.08.2015 15:40
Stauffenberg писал(а):
04.08.2015 15:10
Так, стоп, а кто мне дал ссылку на русскую?
А сам чего? Маленький что ли?
Я дал первое, что нагуглилось. Там в общем-то, всё ясно.
Но если уж одолевают сомнения, можно глянуть оригинал.

Да я-то прочитал руководство на английском еще до открытия темы. Вы в этом не сомневайтесь :drinks:
Я у Вас спрашиваю, потому что Вы дали ссылку и написали о том, что я там должен найти.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: /var/run/utmp: FoxPro FPT

Сообщение Hephaestus »

Stauffenberg писал(а):
04.08.2015 15:48
Да я-то прочитал руководство на английском еще до открытия темы.
Тогда непонятен смысл вот этой фразы
Stauffenberg писал(а):
04.08.2015 10:01
Хотя было бы здорово сначала узнать какого именно формата должен быть этот файл.
Оригинальное руководство вроде достаточно хорошо освещает эту сторону задачи.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

Hephaestus писал(а):
04.08.2015 16:02
Stauffenberg писал(а):
04.08.2015 15:48
Да я-то прочитал руководство на английском еще до открытия темы.
Тогда непонятен смысл вот этой фразы
Stauffenberg писал(а):
04.08.2015 10:01
Хотя было бы здорово сначала узнать какого именно формата должен быть этот файл.
Оригинальное руководство вроде достаточно хорошо освещает эту сторону задачи.

Где именно в оригинальном руководстве говорится о формате? Чтобы не ходить возле да около: процитируйте пожалуйста здесь.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: /var/run/utmp: FoxPro FPT

Сообщение bormant »

Stauffenberg писал(а):
04.08.2015 16:03
Где именно в оригинальном руководстве говорится о формате? Чтобы не ходить возле да около: процитируйте пожалуйста здесь.

В сообщении #12 уже было, повторю:
("man 5 utmp") писал(а):The file is a sequence of utmp structures, declared as follows in <utmp.h>

что на великом и могучем примерно означает:
Этот файл -- последовательность структур utmp, объявленных в файле <utmp.h>
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

bormant писал(а):
04.08.2015 16:24
Stauffenberg писал(а):
04.08.2015 16:03
Где именно в оригинальном руководстве говорится о формате? Чтобы не ходить возле да около: процитируйте пожалуйста здесь.

В сообщении #12 уже было, повторю:
("man 5 utmp") писал(а):The file is a sequence of utmp structures, declared as follows in <utmp.h>

что на великом и могучем примерно означает:
Этот файл -- последовательность структур utmp, объявленных в файле <utmp.h>


Наверное надо было слово "формат" выделить или специально дописать, что я хочу узнать не о структурах в бинарном utmp файле, которую можно без проблем понять читая utmp.h (даже не заглядывая при этом в man-страницу), а именно о формате этого файла. Хотя что-то мне говорит,что даже если бы я это сделал, мне бы все равно начили рассказывать о utmp.h и о полях структуры utmp, описанной там.

Вы понимате в чем разница между ELF и PE? А ведь код программы hello world, который используется для их создания, может быть один и тот же.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: /var/run/utmp: FoxPro FPT

Сообщение bormant »

Stauffenberg писал(а):
04.08.2015 16:36
Вы понимате в чем разница между ELF и PE?
Да. А вы?

Stauffenberg писал(а):
04.08.2015 16:36
код программы hello world, который используется для их создания, может быть один и тот же
Вот только писатель одного и другого формата не один и тот же.

Вы знакомы с языком C? Вы понимаете, что происходит при записи структуры в бинарный файл? А массива структур?
Вот в этом файле как раз и лежит массив из struct utmp, объявленных в <utmp.h>.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: /var/run/utmp: FoxPro FPT

Сообщение Hephaestus »

Stauffenberg писал(а):
04.08.2015 16:36
Наверное надо было слово "формат" выделить
Хорошо. Зайдем с другой стороны. Какой формат файла может содержать в себе разнородные структуры данных?
Структура данных этого файла описана в man 5 utmp, формат явно не указан, из чего можно сделать вывод, что файл не имеет определенного формата (текст, таблица, БД), следовательно файл бинарный (о чём я сказал сразу), либо это голые данные. Выше было сказано, что file(1) определяет этот файл как data - вот это и есть самый правильный вариант.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: /var/run/utmp: FoxPro FPT

Сообщение Stauffenberg »

Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: /var/run/utmp: FoxPro FPT

Сообщение bormant »

Stauffenberg
Поздравляю, заслужили. У нас такой нет... Полагаю, тягаться с вами в этом деле нам бесполезно.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: /var/run/utmp: FoxPro FPT

Сообщение bormant »

Stauffenberg писал(а):
04.08.2015 10:01
Хотя было бы здорово сначала узнать какого именно формата должен быть этот файл.
Возможно, вы изначально спрашивали, как называется формат этого файла? А не все ли равно, если у него нет никакой сигнатуры, по которой его можно идентифицировать однозначно?

Тем более, что и сам формат не фиксирован однозначно:
Conforming To
POSIX.1 does not specify a utmp structure, but rather one named utmpx, with specifications for the fields ut_type, ut_pid, ut_line, ut_id, ut_user, and ut_tv. POSIX.1 does not specify the lengths of the ut_line and ut_user fields.

Linux defines the utmpx structure to be the same as the utmp structure.

Comparison with historical systems
Linux utmp entries conform neither to v7/BSD nor to System V; they are a mix of the two.
...
Notes
...
Note that the utmp struct from libc5 has changed in libc6. Because of this, binaries using the old libc5 struct will corrupt /var/run/utmp and/or /var/log/wtmp.
Спасибо сказали: