Salut � tous,Je fais un petit programme cens� tester un point pr�cis de la gestion de la m�moire sous Linux. J'essaie de d�clencher des segfault en �crivant ds la m�moire octet par octet � partir d'un endroit que j'ai allou�.
Comme il me semble qu'une page fait g�n�ralement 4ko sous mon os pr�f�r�. Le nombre d'octets au bout duquel j'obtiens une segfault ne devrait jamais d�passer 4096, non ? (voire 8192 avec des pages de 8ko).
Or le nombre est bcp plus gd que �a : 137400. Soit j'ai fait une connerie ds les 15 lignes que j'ai �crites (honte sur moi) soit je comprends plus...
**********************
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#define ALLOC_SIZE 10
int j;
void catch_segfault(int num)
{
printf("segfault attrap�e : j = %d\n",j);
exit(0);
}
int main(void)
{
int i;
signal(SIGSEGV,catch_segfault);
char *t= (char*) malloc(ALLOC_SIZE*sizeof(char));
j=0;
while(1)
{
t[j]='\0';
j++;
}
return 0;
}
**********************
Y a-t-il un moyen de connaitre la taille des pages que le noyau en cours
d'utilisation va utiliser ? (quelque part dans /proc j'imagine).
D'avance merci. -- Baptiste <Batmat> Mathus Baptiste at Mathus point org http://www.batmat.net OpenPGP : 0xE8EC628F --------- Si chacun de nous a une id�e et que nous les partageons, nous repartirons tous les deux avec deux id�es... C'est �a le Libre.
signature.asc
Description: OpenPGP digital signature

