Ламерский вопрос, но..., Йоклмн, 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 читайте книжки - это, действительно, ламерский вопрос. Спасибо, всё понял (пошёл читать книжки :)
|