C 创建压缩包并写入文件
时间: 2024-01-20 20:03:20 浏览: 5
要在 C 语言中创建压缩包并写入文件,可以使用 zlib 库。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <zlib.h>
int compress_file(const char *infilename, const char *outfilename)
{
FILE *infile = fopen(infilename, "rb");
if (infile == NULL) {
perror("Failed to open input file");
return 1;
}
gzFile outfile = gzopen(outfilename, "wb");
if (outfile == NULL) {
perror("Failed to open output file");
fclose(infile);
return 1;
}
char buffer[1024];
int num_read = 0;
while ((num_read = fread(buffer, 1, sizeof(buffer), infile)) > 0) {
if (gzwrite(outfile, buffer, num_read) != num_read) {
perror("Failed to write compressed data");
fclose(infile);
gzclose(outfile);
return 1;
}
}
fclose(infile);
gzclose(outfile);
return 0;
}
int main()
{
const char *infilename = "input.txt";
const char *outfilename = "output.txt.gz";
if (compress_file(infilename, outfilename) != 0) {
fprintf(stderr, "Failed to compress file\n");
return 1;
}
printf("File compressed successfully\n");
return 0;
}
```
这个程序会将名为 "input.txt" 的文件压缩成一个名为 "output.txt.gz" 的 gzip 压缩包,并将压缩包写入磁盘。你可以根据需要修改输入和输出文件的名称。请注意,这个程序只是一个基本的示例,你可能需要根据自己的需求进行修改和扩展。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)