Comment compresser un fichier (gzip) à l'aide de bibliothèques boost C++

Im essayant de compresser un fichier en utilisant la bibliothèque boost (gzip).
Ses une tâche simple: supposons que j'ai le fichier data.xml et j'ai besoin de le compresser à data.xml.gz. Je peux même utiliser la compression par défaut des valeurs, n'a pas d'importance.

J'ai essayé de chercher sur google et pages BOOST mais sans succès.

J'ai le texte suivant:

bool SyncFrequencyHistory::frequencyHistoryCompressFile(void)
{
    printf("\r\n===== ACTION: frequencyHistoryCompressFile =====\r\n");

    std::ifstream inStream(FREQUENCY_HISTORY_FILE, std::ios_base::in);
    std::ofstream outStream(FREQUENCY_HISTORY_FILE_GZIP, std::ios_base::out);
    boost::iostreams::filtering_streambuf<boost::iostreams::output> out;
    out.push(boost::iostreams::gzip_compressor());
    out.push(outStream);
    boost::iostreams::copy(in, out);

    return true;
}

FREQUENCY_HISTORY_FILE avoir le plein emplacement du fichier XML

FREQUENCY_HISTORY_FILE_GZIP avoir le plein emplacement pour le XML.GZ fichier

Je sais que presque tout le code est mauvais, mais je n'ai aucune idée à qui écrire de la bonne façon.

Est en cours d'exécution gzip comme une commande externe n'est pas une option?
Ce qui se passe lorsque vous exécutez cette?

OriginalL'auteur Vasco Baptista | 2013-07-03