


Comment puis-je écrire dans une mémoire tampon à l'aide d'un FILE* en C ?
Nov 01, 2024 pm 02:10 PMÉcrire dans un tampon mémoire via FILE*
Cette question explore la possibilité de créer un tampon mémoire en tant que FILE. Cela se produit dans des situations où TiXml peut imprimer du XML dans un FILE mais pas directement dans une mémoire tampon.
Solution POSIX
Une solution à ce problème consiste à utiliser les fonctions POSIX fmemopen ou open_memstream. Les deux fonctions permettent d'utiliser la mémoire comme descripteur de FILE, mais elles diffèrent par la sémantique.
fmemopen crée un tampon mémoire d'une taille spécifiée et l'associe à un flux FILE. Les données écrites dans le FILE seront stockées dans la mémoire tampon.
open_memstream crée un canal et l'associe à un flux FILE. Les données écrites dans FILE seront écrites dans le tampon du canal. Cette approche est plus adaptée aux situations où la taille des données n'est pas connue à l'avance.
Exemple d'utilisation :
Voici un exemple utilisant fmemopen pour créer une mémoire tampon pour un FILE* :
<code class="c">#include <stdlib.h> #include <stdio.h> #include <string.h> int main() { // Create a 1024-byte memory buffer char buffer[1024]; FILE *fp = fmemopen(buffer, sizeof(buffer), "w"); // Write some data to the buffer fputs("Hello, world!", fp); fclose(fp); // Read the data back from the buffer rewind(fp); char readBuffer[1024]; fread(readBuffer, sizeof(char), 1024, fp); printf("%s", readBuffer); return 0; }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour?

Gulc: Cibliothèque C construite à partir de zéro

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les

Utilisation distincte et partage de phrases

Où est la valeur de retour de la fonction de langue C stockée en mémoire?

Comment fonctionne la bibliothèque de modèle standard C (STL)?

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)?
