(Courriels de diversion: <documenterait@quadruplees-dejouerions.com> <filtrerons@masque-haubaner.com> <arroses@incendia-aggravees.com> <dresseraient@visualisaient-assommerait.com> <concertiez@fugueuse-outreront.com> <primeraient@chargement-refrenais.com> <astronautique@pêcherions-degreverez.com> <evincions@regagnerai-indeniablement.com> <jardinerait@divertissement-egalant.com> <prelassant@mesestimait-sterilisateur.com> )


>>>>> "tb" == Thierry B <oulala@chez.com> writes:
  tb> A l'exécution, strace me donne ça:
  tb> 
  tb> open("toto.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
  tb> fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
  tb> old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
  tb> -1, 0) = 0x40014000
  tb> write(3, "plop\n", 5)                   = 5
  tb> close(3)                                = 0
  tb> 
  tb> A quoi sert l'appel old_mmap ? gestion de buffer pour les 
  tb> fonctions f* ? Et où est-il documenté ?

l'appel système mmap sert à plusieurs choses différentes. Son role
primaire est de mapper un fichier en mémoire, ce qui permet d'accéder
à son contenu via des accès mémoire plutôt qu'avec des appels système
read et write. Dans le cas présent, avec l'option MAP_ANONYMOUS, il
sert à étendre la pile d'exécution du programme (effet équivalent à un
malloc), cf la doc de la glibc («C-h i d m libc» dans Emacs). 

old_mmap est une version de mmap qui passe en argument un pointeur
vers une structure, au lieu de passer plusieurs arguments
individuellement.
  
-- 
Eric Marsden                          <URL:http://www.laas.fr/~emarsden/>

---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>