The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Ламерский вопрос, но..., !*! Йоклмн, 23-Сен-03, 13:17  [смотреть все]

/usr/src/usr.bin/vmstat/vmstat.c    (FreeBSD-5.1):
Инициализируется массив структур
static struct nlist namelist[] = {
#define X_CPTIME        0
        { "_cp_time" },
#define X_SUM           1
        { "_cnt" },
#define X_BOOTTIME      2
        { "_boottime" },
#define X_HZ            3
        { "_hz" },
#define X_STATHZ        4
        { "_stathz" },
#define X_NCHSTATS      5
        { "_nchstats" },
#define X_INTRNAMES     6
        { "_intrnames" },
#define X_EINTRNAMES    7
        { "_eintrnames" },
#define X_INTRCNT       8
        { "_intrcnt" },
#define X_EINTRCNT      9
        { "_eintrcnt" },
#ifdef notyet
#define X_DEFICIT       10
        { "_deficit" },
#define X_REC           11
        { "_rectime" },
#define X_PGIN          12
        { "_pgintime" },
#define X_XSTATS        13
        { "_xstats" },
#define X_END           14
#else
#define X_END           10
#endif
        { "" },
};


Структура nlist объявляется так (/usr/include/sys/nlist_aout.h)  :
struct nlist {
#ifdef _AOUT_INCLUDE_
        union {
                char *n_name;   /* symbol name (in memory) */
                long n_strx;    /* file string table offset (on disk) */
        } n_un;
#else
        char *n_name;           /* symbol name (in memory) */
        int : 8 * (sizeof(long) > sizeof(char *) ?
            sizeof(long) - sizeof(char *) : sizeof(char *) - sizeof(long));
#endif
        unsigned char n_type;   /* type defines */
        char n_other;           /* ".type" and binding information */
        short n_desc;           /* used by stab entries */
        unsigned long n_value;  /* address/value of the symbol */
};

Тогда что такое "{ "_cp_time" }", например?  Это совсем не похоже на экземпляр структуры nlist. Ни в одной книге такого нет :-(, блин. В учебниках всё просто ;-)

PS Просьба сильно ногами не пинать. C изучаю недавно, по необходимости

  • Ламерский вопрос, но..., !*! _Павел, 14:38 , 23-Сен-03 (1)
    Очевидно, это n_name. Если же "_AOUT_INCLUDE_", то n_name либо n_strx - это уж как охота использовать.
    Остальные поля  структур остаются неинициализированными (либо забиваются нулями).

    PS читайте книжки - это, действительно, ламерский вопрос.

    • Ламерский вопрос, но..., !*! Йоклмн, 15:13 , 23-Сен-03 (2)
      >Очевидно, это n_name. Если же "_AOUT_INCLUDE_", то n_name либо n_strx - это
      >уж как охота использовать.
      >Остальные поля  структур остаются неинициализированными (либо забиваются нулями).
      >
      >PS читайте книжки - это, действительно, ламерский вопрос.

      Спасибо, всё понял (пошёл читать книжки :)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру