将ngx_chain_t转换为缓冲存储器

时间:2014-11-18 11:47:32

标签: c nginx

我正在寻找转换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 之类的内容?

1 个答案:

答案 0 :(得分:0)

尝试fmemopen(3),阅读第1页的手册!

也许我不明白这个问题。

但正如我所理解的那样,它是关于将fopen替换为可以读取inx_chain_t对象结构的其他东西,如:

  ...
  fp = fmemopen(object, MAX, "r");
  newLen = fread(source, sizeof(char), MAX, fp);
  ... 

对不起,如果这仍然是一个误解。