Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : programmation en c [ Système / Autre ] (nadou21021988)

jeudi 29 novembre 2007 à 09:02:07 | programmation en c

nadou21021988

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

Nadou


jeudi 29 novembre 2007 à 12:39:02 | Re : programmation en c

DeAtHCrAsH

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 :

[ Lien ]

Tu trouveras dans ce deuxième lien, un exemple d'utilisation de cette fonction en VB :

[ Lien ]

Bon courage et n'hésites pas si tu bloques.

Shell

jeudi 29 novembre 2007 à 22:50:05 | Re : programmation en c

nadou21021988

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

nadou

vendredi 30 novembre 2007 à 21:22:00 | Re : programmation en c

rt15

Membre Club
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;
}

/* pid, comm, state, ppid */
fscanf(lpFile, "%d %1023s %c %d", &i, buffer, &state, &i);
/* pgrp, session, tty_nr, tpgid */
fscanf(lpFile, "%d %d %d %d", &i, &i, &i, &i);
/* flags, minflt, cminflt, majflt, cmajflt */
fscanf(lpFile, "%lu %lu %lu %lu %lu", &u, &u, &u, &u, &u);
/* utime, stime, cutime, cstim */
fscanf(lpFile, "%lu %lu %ld %ld", &u, &u, &li, &li);
/* priority, nice, 0 */
fscanf(lpFile, "%ld %ld %ld", &li, &li, &li);
/* itrealvalue, starttime, vsize, rss, rlim */
fscanf(lpFile, "%ld %lu %lu %ld %lu", &li, &u, &vmem, &rss, &u);

printf("Le processus %s consomme :\n", buffer);
printf("%lu ko de mémoire virtuelle\n", vmem / 1024);
printf("%li pages -> %li ko (Pour des pages de 4 ko)\n", rss, rss * 4);

fclose(lpFile);
return 0;
}


3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08

vendredi 30 novembre 2007 à 21:34:09 | Re : programmation en c

rt15

Membre Club
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) :

#include "stdlib.h"

int main(int argc, char ** argv)
{
  system("ps -v");
  return 0;
}


3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08

lundi 3 décembre 2007 à 11:49:40 | Re : programmation en c

theneoiceman

Faut reconnaitre, ta boutade est simple et elle marche :) Je valide à 200%

Mess with the best, die like the rest



Cette discussion est classé dans : programmation


Répondre à ce message

Sujets en rapport avec ce message

Programmation COM en C++ [ par Steph ] Salut à tous,Quelqu'un connait-il une documentation ou un site Web sur la programmation d'objets COM en Visual C++ ?J'ai crée un Objet COM en C++ mais CONCOUR PROGRAMMATION C++ [ par progman ] JE lance de nouveau un appel pour lancer un concours de programmation en C/C++ ! Si vous souhaitez participez au concours laissez un message ! programmation odbc [ par adel ] comment resoudre les problèmes d'appel à l'API ODBC ,telque l'appel à SQLNativeSql? Reseau [ par BenjaminRare ] Bonjour,Si qql 1 pourrait m'aider a trouver un bon site pour apprendre la programmation en c++ pour reseaux et internet.......J'ai commencer la progra La programmation en C [ par bip54fl ] Comment faire un programme pour faire "une base de donné" pour la gestion des cd en faisant:1° encoder les cd en utilisant 1 tableau de structure (ave programmation client [ par CyraX ] bonjour tout le monde...Voila je souhaiterais programmer un client pour un server de message instantanés style AIM ou MSN.Cependant, je manque d'infor PROG-zone, la programmation sous tous les langages [ par sebrs1 ] Salut à tous les développeurs, je viens de mettre en ligne mon tout nouveaux site qui servira à tout le monde quelque soit le langage dans lequel vous Un forum de programmation [ par hm1ch ] Un nouveau site de programmation vient d'ouvrir ses portes aux particuliers expérimentés ou non au monde de la programmation. Sur ce site vous y trouv Nouveau site de programmation [ par julp ] Voici un nouveau site de programmation, le site ProgOtoP.Net ouvre ses portes... Ce site permet au débutant tout langage, d'apprendre, d'apronfondir l question sur programmation linux [ par yolhaiji ] YOL.HAI.JIsalut:je voulais savoir comment sur linux peut on etablir une connexion entre un processus pere et ces deux processus fils avec les pipes (


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.