(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/>