Вы можете использовать zlib
для записи данных в сжатый поток.
gzFile fp;
fp = gzopen(NAME, "wb");
gzprintf(fp, "Hello, %s!\n", "world");
gzclose(fp);
Скомпилируйте это так:
gcc -Wall -Wextra -o zprog zprog.c -lz
Используйте zcat
для печати содержимого файла.