que je dois faire quelque chose comme ça pour mon entrée de programme:istream de file_descriptor_source (boost :: iostreams) ou un fichier
stream input;
if (decompressed)
input.open(filepath);
else {
file_descriptor=_popen("decompressor "+filepath,"r");
input.open(file_descriptor);
}
input.read(...)
...
Je peux voir une solution - utiliser _popen dans les deux cas et il suffit de copier le fichier à stdout si c'est déjà décompressé, mais cela ne semble pas très élégant. Drôle combien cela est difficile par rapport à C - Je suppose que la bibliothèque standard l'a manqué. Maintenant, je suis perdu dans la documentation cryptic boost :: iostreams. Exemple de code serait génial si quelqu'un sait comment.
descripteurs de fichiers sont une caractéristique des systèmes d'exploitation spécifiques. Dans ce cas, les langages portables comme C++ ne spécifient normalement pas les fonctions pour les traiter. Cela peut vous surprendre de savoir que le standard C ne spécifie aucune fonction de descripteur de fichier non plus. –
Tout est une fonctionnalité des systèmes d'exploitation, y compris les fichiers et les processus. J'ai accepté que cette fonctionnalité particulière a été omise de la norme C++ et je suis prêt à utiliser boost ou toute autre chose qui va me sauver de réécrire toute la classe en utilisant Fread. – graw
Oui, c'est drôle à quel point un langage OO est différent d'un langage procédural. La différence est une fois que vous comprenez OO, il est beaucoup plus facile d'avoir raison par rapport à la procédure. –