gpt4 book ai didi

c - fwrite动态大小

转载 作者:行者123 更新时间:2023-11-30 14:21:49 25 4
gpt4 key购买 nike

我正在尝试打印由 cURL 返回的动态下载的图像,如下所示:

    char *raw_image = malloc(1024);

raw_image = doCurl("GET", img_url, NULL, NULL);

printf("Content-Type: image/png\n\n");

fwrite(raw_image, sizeof(raw_image), 20000, stdout);

如果我的尺寸小于 20000 - 图像会被剪切。我怎样才能使这个数字动态化?我不想写入文件 - stdout 是最好的选择。

感谢任何帮助。

最佳答案

理想情况下,您需要一种方法来了解您正在下载的文件(图像)的大小。

首先使用libcurl获取 header 并获取大小。

假设您将大小存储在s

当你分配缓冲区时你应该这样做

char *raw_image = malloc(s);

因为s是你必须保存的数据大小不是1024字节!

下载文件并将其存储在raw_image

然后

fwrite(raw_image, 1, s, stdout);

请注意,sizeof(raw_image) 是指向缓冲区的指针的大小,因此在 64 位硬件架构中为 8 个字节。 这不是文件的大小!

-

但是......

-

您正在获取图像,并将其传输到标准输出。

为什么不对 curl 进行简单的调用?

关于c - fwrite动态大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14405738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com