[C] komprimiert in eine Datei schreiben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
coresploit
Beiträge: 237
Registriert: 26.04.2009 01:57:27
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nettetal
Kontaktdaten:

[C] komprimiert in eine Datei schreiben

Beitrag von coresploit » 07.09.2009 22:45:00

Guten Abend,

mein Programm soll schon von Haus aus Kompression beherrschen. Bis jetzt sieht es aber erst so aus:

Code: Alles auswählen

FILE *ostream;

if (output_file != NULL)
{
    if (gzip)
    {
        ostream = popen ( ... );
    }
    else
    {
        ostream = fopen (output_file, "w");
    }
}
else
{
    ostream = stdout;
}
Ich dachte vielleicht, dass man gzip dann per popen "dazwischenschalten kann", also dass ich nicht die Datei direkt öffne, sondern den Output an gzip schicke und gzip das für mich in die Datei schreibt. Wie genau geht das? Gibt es bessere Lösungsansätze?

Danke.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: [C] komprimiert in eine Datei schreiben

Beitrag von Spasswolf » 07.09.2009 23:08:36


coresploit
Beiträge: 237
Registriert: 26.04.2009 01:57:27
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nettetal
Kontaktdaten:

Re: [C] komprimiert in eine Datei schreiben

Beitrag von coresploit » 08.09.2009 07:39:33

Danke.

Ich habe mir das hier:
http://www.zlib.net/zlib_how.html
angesehen und jetzt habe ich eine andere Frage dazu:
Kann ich einen Puffer mit normalen Streams erstellen? Also dass ich ein FILE* habe, in den ich per fprintf schreiben kann, bis es voll ist und es dann per fread in die zlib einlesen kann? Dann bräuchte ich mein Programm nähmlich nicht großartig ändern.

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: [C] komprimiert in eine Datei schreiben

Beitrag von GoKi » 08.09.2009 09:35:57

MfG GoKi
:wq

coresploit
Beiträge: 237
Registriert: 26.04.2009 01:57:27
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nettetal
Kontaktdaten:

Re: [C] komprimiert in eine Datei schreiben

Beitrag von coresploit » 08.09.2009 22:43:58

Danke. ich benutze jetzt einfach gzdopen neben fopen, dann kann ich auch gezippten output nach stdout senden.

Antworten