Bonjour a tous

Pour mon projet, j'ai besoin de specifier que mon process doit utiliser une quantité de RAM configurable. En gros, si je dis à mon process qu'il doit utiliser 100Mo de RAM, il doit pouvoir utiliser 100Mo de RAM.
J'ai donc deux questions :
1. Comment faire cela avec un malloc par exemple ?
voici une ebauche de code qui est sensé le faire ... mais le fait-il vraiment ?
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    int RAM = 100;  // RAM en Mo que le process doit utiliser
    unsigned long int RAMlong=(unsigned long int)RAM*1024*1000;
    unsigned long int *buff ;
    buff=(unsigned long int*)malloc(sizeof(unsigned long int)*RAMlong);
    if (buff==NULL){printf("Not enough memory\n");return 1;} 
    else {
    	for (j=0;j<10;j++){buff[j]=RAMlong;}
    }
Trouvez vous ce type de code correct pour mon besoin ?
Ma deuxieme question est :
2. Comment verifier qu'effectivement, 100Mo sont utilisées par mon process ? un top ? si oui, quelle colonne du top svp ? J'ai l'impression que %MEM ne donne pas ce que je souhaite ?



Exemple de top :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1452 fferreir  15   0 46980 2580 2192 S   94  0.1   0:19.80  C1C___00_014

MA CONF : Je suis sous Linux, RedHat 4, Bi processeur 64


Merci a tous pour vos conseils avisés !!
pepito