Maison > développement back-end > C++ > Comment puis-je créer un fstream C à partir d'un descripteur de fichier POSIX ?

Comment puis-je créer un fstream C à partir d'un descripteur de fichier POSIX ?

Mary-Kate Olsen
Libérer: 2024-12-25 16:42:09
original
978 Les gens l'ont consulté

How Can I Create a C   fstream from a POSIX File Descriptor?

Construction d'un fstream C à partir d'un descripteur de fichier POSIX

Cette enquête présente une tâche apparemment simple qui s'avère complexe : construire un fstream C à partir d'un descripteur de fichier POSIX. La solution réside-t-elle dans une approche plus simple ou existe-t-il une bibliothèque adaptée disponible ?

La complexité du problème

Selon les experts, il n'existe pas de mécanisme C standard pour cette tâche. Cependant, certaines implémentations de la bibliothèque standard, comme libstdc , proposent des extensions non standard.

Solutions non standard

Les solutions non standard suivantes sont disponibles :

libstdc :

  • Utilise le modèle de classe __gnu_cxx::stdio_filebuf pour créer un tampon de flux de fichiers à partir d'un descripteur de fichier.
  • Exemple :
__gnu_cxx::stdio_filebuf<char> filebuf(posix_handle, std::ios::in);
istream is(&amp;filebuf);
Copier après la connexion

Microsoft Visual C :

  • Utilise le constructeur ifstream non standard qui accepte un FILE* paramètre.
  • Exemple :
ifstream ifs(::_fdopen(posix_handle, "r"));
Copier après la connexion

Conclusion

Bien qu'il n'existe pas de méthode C standard pour cette tâche, les extensions non standard fournis par des implémentations spécifiques offrent des solutions viables.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal