Irix > Programmieren, Kompilieren
Wieviel Speicher hat die Kiste?
Jasper:
Aber, aber, geht doch mit getinvent:
Nach Blick in sys/invent.h:
======= CUT HERE ============
#include <stdio.h>
#include <invent.h>
#include <stdlib.h>
int main(int argc, char ** argv) {
unsigned int error = 0;
int entry_num = 0;
inventory_t * invEntry;
printf("Reading inventory:\n");
printf("=================;\n");
error = setinvent();
if(error == -1) {
printf("Error initializing inventory, exiting!!!\n");
exit(1);
}
while((invEntry = getinvent()) != NULL) {
printf("Entry: %d\n", ++entry_num);
if(invEntry->inv_class==INV_MEMORY &&
invEntry->inv_type==INV_MAIN || invEntry->inv_type==INV_MAIN_MB) {
printf("\tClass : %d\n", invEntry->inv_class);
printf("\tType : %d\n", invEntry->inv_type);
printf("\tController: %d\n", invEntry->inv_controller);
printf("\tUnit : %d\n", invEntry->inv_unit);
printf("\tState : %ld\n", invEntry->inv_state);
}
}
endinvent();
}
===========CUT HERE =============================
Latscht durch deine inventory table, falls die Werte fuer inv_class und inv_type passen, steht in inv_state der gesuchte Wert drin (was INV_MAIN ist, habe ich allerdings nicht rauskriegen koennen, ich vermute, die RAM-Groesse in Byte...)
Viel Spass!
sgt_barnes:
Ist wie jedesmal: Wer lesen kann ist klar im Vorteil.
Das endinvent() hatte ich natürlich nicht drin und dummerweise die Funktion zweimal aufgerufen. Bei zweiten mal war dann natürlich Schicht im Schacht, weil da nie "INV_MEMORY" kam (kam ja nur noch NULL zurück). ::)
Danke Jasper!
in <sys/invent.h> findet sich dann irgendwo der folgende Kommentar:
--- Code: ---
/* types for class memory */
/* NB. the states for class memory are sizes in bytes */
--- Ende Code ---
Also steht in inv_state die RAM-Grösse in Bytes wenn (inv_type == INV_MAIN).
MfG,
Tilmann
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln