Accueil > Forum > > > > Snmp(CPU,memoire,disque) en C??
Snmp(CPU,memoire,disque) en C??
samedi 20 décembre 2003 à 17:48:01 |
Snmp(CPU,memoire,disque) en C??

kobee12
|
Je dois realiser un prog en C qui permet de recuperer le taux de CPU utilise, la memoire disque disponible, espace disque disponible, et pouvoir envoyer toutes ces infos a une machine principale. J'ai apppris que l'on pouvait utiliser le protocole SNMP. Seulement je ne le connais pas du tout. Je suppose qu'il existe des bibliotheques en C du style snmp.h mais je ne connais pas les fonctions qui me permettent de realiser les operations que je dois mettre en oeuvre. Si quelqu'un s'y connait en SNMP et connait les fonctions necessaires a mon prog, qu'il me fasse signe. Merci d'avance kobee 
|
|
samedi 20 décembre 2003 à 19:58:47 |
Re : Snmp(CPU,memoire,disque) en C??

D1m3x
|
Google connait certainement cette librairie :p suffit de lui demander :p :d
[DmX]
|
|
samedi 20 décembre 2003 à 21:20:36 |
Re : Snmp(CPU,memoire,disque) en C??

aardman
|
Salut, Je ne connais pas ce protocole, mais je sais qu'il y a un chapitre entier dans MSDN qui lui est consacré. Ca peut etre une piste de depart..
|
|
dimanche 21 décembre 2003 à 14:05:03 |
Re : Snmp(CPU,memoire,disque) en C??

SMarmotte
|
tu veux quoi au juste ? pour CPU, moi je peux fournir comment récupérer l'util CPU pour NT (pas Win9x)
mais le code est long ... il s'agit d'un fichier externe utilisant des fonction non documentées de NTDLL.DLL ...
-> A inclure ans un projet utilisation hyper simple : float GetCPUusage() ca fonctionne tres bien sur mon W2000
--------------------
// cpu_agent.cpp (Windows NT/2000) // Getting the CPU usage in percent on Windows NT/2000 #include <stdio.h> #include <conio.h> #include <windows.h> #define SystemBasicInformation 0 #define SystemPerformanceInformation 2 #define SystemTimeInformation 3 #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart)) typedef struct { DWORD dwUnknown1; ULONG uKeMaximumIncrement; ULONG uPageSize; ULONG uMmNumberOfPhysicalPages; ULONG uMmLowestPhysicalPage; ULONG uMmHighestPhysicalPage; ULONG uAllocationGranularity; PVOID pLowestUserAddress; PVOID pMmHighestUserAddress; ULONG uKeActiveProcessors; BYTE bKeNumberProcessors; BYTE bUnknown2; WORD wUnknown3; } SYSTEM_BASIC_INFORMATION; typedef struct { LARGE_INTEGER liIdleTime; DWORD dwSpare[76]; } SYSTEM_PERFORMANCE_INFORMATION; typedef struct { LARGE_INTEGER liKeBootTime; LARGE_INTEGER liKeSystemTime; LARGE_INTEGER liExpTimeZoneBias; ULONG uCurrentTimeZoneId; DWORD dwReserved; } SYSTEM_TIME_INFORMATION; // ntdll.NtQuerySystemInformation (NT specific!) // // The function copies the system information of the // specified type into a buffer // // NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation( // IN UINT SystemInformationClass, // information type // OUT PVOID SystemInformation, // pointer to buffer // IN ULONG SystemInformationLength, // buffer size in bytes // OUT PULONG ReturnLength OPTIONAL // pointer to a 32-bit variable that receives // // the number of bytes written to the buffer // ); typedef long (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG); PROCNTQSI NtQuerySystemInformation=NULL; // The function ... float GetCPUusage() { SYSTEM_PERFORMANCE_INFORMATION SysPerfInfo; SYSTEM_TIME_INFORMATION SysTimeInfo; SYSTEM_BASIC_INFORMATION SysBaseInfo; double dbIdleTime; double dbSystemTime; long status; static LARGE_INTEGER liOldIdleTime = {0,0}; static LARGE_INTEGER liOldSystemTime = {0,0}; if(!NtQuerySystemInformation) NtQuerySystemInformation=(PROCNTQSI)GetProcAddress(GetModuleHandle("ntdll"), "NtQuerySystemInformation"); if(!NtQuerySystemInformation) return -1; // Get number of processors in the system status=NtQuerySystemInformation(SystemBasicInformation, &SysBaseInfo, sizeof(SysBaseInfo), NULL); if(status!=NO_ERROR) return -1; // Get new system time status=NtQuerySystemInformation(SystemTimeInformation, &SysTimeInfo, sizeof(SysTimeInfo), 0); if(status!=NO_ERROR) return -1; // Get new CPU's idle time status=NtQuerySystemInformation(SystemPerformanceInformation, &SysPerfInfo, sizeof(SysPerfInfo), NULL); if(status!=NO_ERROR) return -1; // CurrentValue = NewValue - OldValue dbIdleTime=Li2Double(SysPerfInfo.liIdleTime)-Li2Double(liOldIdleTime); dbSystemTime=Li2Double(SysTimeInfo.liKeSystemTime)-Li2Double(liOldSystemTime); // CurrentCpuIdle = IdleTime / SystemTime dbIdleTime=dbIdleTime/dbSystemTime; // CurrentCpuUsage% = 100 - (CurrentCpuIdle * 100) / NumberOfProcessors dbIdleTime=100.0-dbIdleTime*100.0/(double)SysBaseInfo.bKeNumberProcessors; // Store new CPU's idle and system time liOldIdleTime=SysPerfInfo.liIdleTime; liOldSystemTime=SysTimeInfo.liKeSystemTime; // Sometimes, value is -0.00 if(dbIdleTime<0) dbIdleTime=-dbIdleTime; return (float)dbIdleTime; }
|
|
lundi 22 décembre 2003 à 20:49:41 |
Re : Snmp(CPU,memoire,disque) en C??

kobee12
|
ton pgrm a l'air pas mal mais quand je le compile il me fait deux erreurs sous visual c++ : LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/cpu_agent.exe : fatal error LNK1120: 1 unresolved externals 
|
|
lundi 22 décembre 2003 à 20:57:07 |
Re : Snmp(CPU,memoire,disque) en C??

SMarmotte
|
salut en fait ce fichier est à joindre dans un projet ... et dans le fichier principal tu fait :
#include <stdio.h> #include <windows.h>
void main() { for(;;) { printf("Util CPU = %f", GetCPUusage()); Sleep(1000); } }
ou int WinMain(....) pour une prog graphique
ca marche impec
d'un autre coté tu aurais pu t'en douter : le msg d'erreur disait : "unresolved external symbol _main"
_main non trouvé (or tout prog en C a un main ou WinMain)
|
|
mardi 29 avril 2008 à 08:50:37 |
la même chose processeur par processeur ?

sfave
|
Bonjour
ça fonctionne très bien. Excellent. Et si on veut la même chose, mais pour chaque processeur ?
Quelqu'un aurait une solution ?
Merci
Seb le Fou
|
|
Cette discussion est classée dans : disque, realiser, memoire, cpu, snmp
Répondre à ce message
Sujets en rapport avec ce message
Afficher charge CPU disponibilite memoire et disque [ par kobee12 ]
J'aimerais faire un prog qui me permette d'afficher en temps reel la charge CPU la disponibilite memoire et disque de mon pc, et out ca en C.Si quelqu
monitorin CPU, memoire ,disques [ par Houssemsdi ]
Bonjour j'ai à developper une application de monitoring base de données en java et j'ai besoin d'un petit module pour le monitoring systeme ( ut
Probleme CreateFile à l'ouverture du disque C: sous vista [ par ksoft_cppfrance ]
En fait je suis en train de developper une application qui permet de lire et ecrire sur le disque. Pour cela, j'utilise les fonctions CreateFile, Read
antileechdir [ par RICHARD37 ]
Bonjour,J'ai mon disque qui s'est planté suite à virus. J'ai réinstallé windows XP sur un autre disque et mis le disque d'origine en esclave.Je souhai
allocation memoire qui echoue, mais pourquoi?? [ par Seomaz ]
Bonjour,je pense que le titre est assez explicite...mais je détaille quand même:lors d'une allocation dynamique (avec l'operateur new), je me retrouve
Erreur (0x80000003) - L'exception Point d'arrêt [ par nuxaly ]
Bonjour, j'ai un probleme de memoire. j'essaye d'executer mon programme c++ sous visual c++ et un erreur s'affiche le voila : "L'exception Point d
[A SUPPRIMER]transfer de fichiers du disque c au sisque c [ par bonbout ]
bonjour a tousj utilise windows x p mon problème est quille ne me reste que 13/100 qui nets pas utiliser sur mon disque d ce qui fait en sorte que je
Faire une tempo sans utiliser 100% du CPU [ par Xantra ]
Bonjour,J'ai un probleme, je suis en train de developper une appli win32 sans fenetre (un processus), et je voudrai faire un attente de plusieur minut
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|