Existe-t-il un moyen de mapper un descripteur créé par socket() vers un tampon mémoire?Un descripteur créé par socket() peut-il être mappé à un tampon mémoire?
La raison pour laquelle je cherche ceci est parce que je veux faire une application existante pour lire de la mémoire tampon que j'ai créée au lieu de son tampon TCP associé. Je ne devrais pas modifier l'application, donc je veux mapper un fd retourné par l'application à un tampon que j'ai créé.
J'ai trouvé une question similaire: Can descriptors for sockets be converted to File Pointers?
Mais je ne sais pas si fdopen() peut être utilisé pour mon but, car fdopen() ne prend que deux arguments (fd et le mode) et je ne savoir comment réassocier le fd à une mémoire que je crée avec malloc().
Comment votre application sait-elle qu'il y a de nouvelles données dans ce tampon 'malloc (3)' -ed? Il pourrait y avoir une solution, mais cela dépend beaucoup de votre interface existante. –
C'est en fait une bonne question. J'ai juste supposé que select() de l'application (dans laquelle je ne peux pas faire de modification) surveille si mon tampon malloc() ed est prêt à être lu. Mais, mon hypothèse peut être une grosse erreur. –
Ouais, comprendre comment les notifications/rappels sont là. Avoir cela vous donnera une meilleure idée comment accrocher dans l'application existante. –