Équivalent de open_memstream pour MSVC

J’utilise open_memstream dans l’une de mes bibliothèques, mais j’aimerais porter cette bibliothèque sur MSVC. Il semble qu’il n’y ait pas de fonction équivalente disponible, mais y a-t-il quelque chose de similaire?

Open_memstream prend une destination et une taille char ** et renvoie un fichier * dans lequel vous écrivez souvent, les données sont stockées dans une mémoire tampon allouée dynamicment (accessible à partir de l’argument char **). Lors de la fermeture du fichier, le caractère ** contient les données écrites dans le stream. Cela constitue un moyen facile de construire des stream de chaînes volumineux et complexes.

Bien qu’il soit possible à la fois de lire et de chercher dans le memstream, je lui écris seulement.

Est-il possible d’ouvrir un stream de mémoire FILE similaire dans MSVC? De plus, c’est du C pur, pas de C ++.

Une fonction similaire sur Windows serait CreateStreamOnHGlobal (). Cela fonctionne cependant avec l’interface COM IStream, ce n’est pas un remplacement immédiat pour FILE. Vous voudrez peut-être jeter un coup d’œil sur le code source de Cygwin pour voir ce qu’ils ont fait.