Bonjour,
J ai un programme qui recoit des paquets de donnees et les stocke dans un tableau que je redimensionne au fur a mesure a coup de realloc. Je ne connais pas a l avance le nombre de paquets ni leur taille.
Dans ce programme j appelle aussi une fonction tierce qui traite des donnees et dont le seul parametre est un file descriptor qui permettra d acceder a ses donnees.
Actuellement une fois le remplissage de mon tableau effectue j ecris son contenu dans un fichier puis j ouvre ce fichier en lecture pour obtenir un file descriptor que je fournis ensuite a la fonction tierce.
Cette solution ne me satisfait pas car cela m embete de devoir passer par le disque alors que toutes les donnees sont dispos en memoire dans mon programme.
Je cherche donc un moyen qui me permettrait d obtenir un file descriptor pour acceder a mon tableau memoire.
Connaissez vous une telle solution ?
J ai cherche de mon cote et il semble que mmap soit un bon candidat cependant d apres ce que je comprends de la doc mmap donne un acces via memoire a un fichier du disque. Si je pars d un fichier vide et que je fais un memcpy de mon tableau vers la memoire mmapee j ai l impression que cela fera des acces disques
Autre solution, la shared memory avec un shm_open . Cependant j aurais besoin la aussi de faire un memcpy de mon tableau vers la shared memory ce que je trouve dommage vu que j ai deja l info en memoire.
Est ce qu il n existerait pas une solution simple qui me permettrait de creer directement un file descriptor a partir de mon tableau ?
Je developpe sous Linux mais j aimerais que la solution retenue marche aussi en MinGW sous windows
PS : je ne veux pas remplacer ma fonction tierce par une autre fonction car je considere que se serait se defiler face au probleme que je pose
Merci d avance
Julien
Partager