Re: Question de C

Top Page

Reply to this message
Author: ML Guilde
Date:  
To: guilde
Subject: Re: Question de C
On Thursday 08 April 2004 15:42, Xavier Bestel wrote:

> > Question peut-etre idiote, mais comment peut-on acceder a la memoire
> > directement dans un programme en C, via un pointeur ? Toutes mes
> > tentatives se soldent par un Segmentation Fault.


Avec vos reponses, j'ai pu retrouver un bout de code qui fait ce qu'il faut.
En gros, il faut utiliser mmap sur le pseudo-fichier /dev/mem. C'est rigolo,
comme truc: la memoire est mappee par un pseudo fichier que l'on remappe en
memoire (mais ailleurs) !!!

void *base;
int fd;

fd = open("/dev/mem", O_RDONLY);
if (fd == -1) {
    perror("open /dev/mem");
    return;
}


base = mmap(NULL, 4096, PROT_READ, MAP_SHARED|MAP_FILE, fd, mem);
if (base == (void *)-1) {
    perror("mmap /dev/mem");
    close(fd);
return;


close(fd);


--
Frédéric