我正在寻找转换ngx_chain_t对象的方法(已经由nginx填充并准备好响应客户端或传递给另一个过滤器)来缓冲内存,就像我们将整个文件读入内存一样:
#include <stdio.h>
#define MAX 999999
char source[MAX + 1];
FILE *fp = fopen("thisfile", "r");
size_t newLen = fread(source, sizeof(char), MAX, fp);
source[++newLen] = '\0';
现在 source 是缓冲区内存,它将 thisfile 的全部内容保存在内存中。
在这种情况下,有没有办法将ngx_chain_t缓冲区转换为 source 之类的内容?
答案 0 :(得分:0)
尝试fmemopen(3),阅读第1页的手册!
也许我不明白这个问题。
但正如我所理解的那样,它是关于将fopen替换为可以读取inx_chain_t对象结构的其他东西,如:
...
fp = fmemopen(object, MAX, "r");
newLen = fread(source, sizeof(char), MAX, fp);
...
对不起,如果这仍然是一个误解。