The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Ламерский вопрос, но..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Ламерский вопрос, но..."
Сообщение от Йоклмн emailИскать по авторуВ закладки on 23-Сен-03, 13:17  (MSK)

/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 изучаю недавно, по необходимости

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

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

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх

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

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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