nadou21021988
Messages postés4Date d'inscriptionmercredi 9 mai 2007StatutMembreDernière intervention28 février 2008
-
29 nov. 2007 à 09:02
theneoiceman
Messages postés78Date d'inscriptionlundi 14 avril 2003StatutMembreDernière intervention23 avril 2010
-
3 déc. 2007 à 11:49
salut tout le monde,je m'appelle Nadia et je suis étudiante en 3éme année informatique.
Mon probleme c'est la programmation,j'ai fait tout mon possible pour apprendre mais rien y faire.bref,on m'a donné un tp à faire il s'agit de créer un programme en c ou en c++ et aprés son exécution il doit donnée un tableau qui nous donne des informations sur la memoire virtuelle(il doit faire le meme travail que la commande ps -v sous unix.svp aidez moi
merci d'avance
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 29 nov. 2007 à 12:39
Salut Nadia,
Pour obtenir des informations sur la mémoire virtuelle, il faut utiliser l'API GlobalMemoryStatus(...).
Voici un lien avec quelques explications sur le fonctionnement de cette fonction :
nadou21021988
Messages postés4Date d'inscriptionmercredi 9 mai 2007StatutMembreDernière intervention28 février 2008 29 nov. 2007 à 22:50
slt et merci beaucoup pour votre aide,mais je pense que vous m'avez pas bien compris,je cherche un programme ecrit en C QUI FAIT EXACTEMENT LE MEME TRAVAIL QUE LA COMMANDE PS -V SOUS UNIX.
RQ: LA COMMANDE PS -V SOUS UNIX DONNE DES INFORMATIONS SUR LA MEMOIRE VIRTUELLE.
JE PARLE TOUJOUR SUR UNIX PAS WINDOWS.
MERCI.....................BONNE NUIT
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 30 nov. 2007 à 21:22
Salut,
Bon, alors pour Windows XP, il faut... Nan je déconne !
Chez Linux, ils sont fans des fichiers. Donc les infos sur l'états des processus sont stockées dans des fichiers.
Je sais pas s'il y a mieux genre des commandes qui aide, mais j'ai pas trouvé (A part sysinfo, mais ça ne donne que des infos sur globales, pas par fichier).
Toutes les infos sont dans /proc. Ce répertoire contient un répertoire
par processus (Les noms des répertoires sont les PID des processus),
plus quelques autres trucs. Parmis ces autres trucs, il y a le fichier
meminfo qui contient des info sur la mémoire, mais là aussi au niveau
du système.
La mémoire consommées des processus est dans /proc/[pid]/stat. Ce
fichier contient des données "aisément" accessibles via un fscanf. Plus
précisément, c'est vsize et rss qui risquent de t'intéresser. Tout le
contenu des fichiers de /proc est détaillé ici.
J'ai essayé, voilà ce que ça à donné (Je précise que je suis Windowsien de naissance) :
#include "stdio.h"
int main(int argc, char ** argv)
{
FILE * lpFile;
char lpFileName[256];
int i;
long li, rss;
unsigned long u, vmem;
char state;
char buffer [1024];
if (argc != 2)
{
printf("Cette commande prend un PID en paramètre\n");
return 1;
}
sprintf(lpFileName, "/proc/%s/stat", argv[1]);
lpFile = fopen(lpFileName, "r");
if (! lpFile)
{
printf("Ouverture du fichier %s impossible\n", lpFileName);
return 1;
}
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 30 nov. 2007 à 21:34
Un petit double post pour pleurer devant mon code bien moche.
* Content de faire surtout du Windows *
Pour aussi te préciser qu'un topic intitulé "programmation en c" dans
un forum sur le C/C++, y en a eu des milliers, y en aura des
milliers... Mais ça serait bien que tu ne nous en fasses plus. Un petit
[C/Linux]Mémoire des processus, s'aurait été plus accrocheur tout en clarifiant la problématique.
Finalement, je te propose une petite boutade à transmettre à ceux qui
t'on demandé ce taffe (Faire un programme C qui fait comme la commande
ps -v) :