Re: Question de C

Pàgina inicial

Reply to this message
Autor: Xavier Bestel
Data:  
A: guilde
Assumpte: Re: Question de C
On Thu, 2004-04-08 at 15:21 +0200, Frédéric Mantegazza 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.
>
> Je suppose qu'on doit demander au noyau l'autorisation pour le faire, mais je
> n'ai pas trouve... Ou alors, est-ce a dire qu'on est *oblige* de passer par
> un driver, comme /dev/mem (pour lequel je ne trouve pas de doc qui dit
> comment se fait l'acces: 8bits, 16bits, 24 bits ou 32 bits) ?


Ben .. exactement. Tu as a ta disposition /dev/mem qui lit la mémoire
physique et /dev/kmem qui lit la mémoire vue par le kernel (ce n'est pas
tout-à-fait la même chose, quand le kernel fait un vmalloc par exemple,
il se remappe de la mémoire pour ses propres besoins).
/dev/*mem sont des char devices, donc l'accès se fait en 8 bits (mais tu
peux les lire comme n'importequel fichier, ou même les mmap()er).

Bien sûr, il faut être root pour y accéder.

    Xav