■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50

read.cgi改良スレッド

35 :デフォルトの名無しさん :01/08/28 22:27 ID:2O23P606
Content-Length対応素材

char emergency_buf[8192]; /* for html_error */

char *outbuf;
int outlen = 0;
int outalloc = 0;

int gzipped_fwrite(char *buf, int n, int m, void *dummy)
{
 int l = n*m;

 if ( outlen+l > outalloc ) {
  outalloc = outlen+l+4096; /* 多めに */
  if ( outlen == 0 ) {
   outbuf = malloc(outalloc);
  } else {
   outbuf = realloc(outbuf, outalloc);
  }
 }
 if ( outbuf != NULL ) {
  memcpy(outbuf+outlen, buf, l);
 }
 outlen += l;
 return m;
}

36 :デフォルトの名無しさん :01/08/28 22:29 ID:2O23P606
main向け
html_errorはどうにかしないとまずいことに。(メモリが取れないときだけ)

 if ( outlen != 0 && outbuf == NULL ) {
  outbuf = emergency_buf;
  outlen = 0;
  html_error("メモリの確保に失敗しました。");
 }
 printf("Content-Length: %d\n",outlen);

 fwrite(outbuf,1,outlen,stdout);

333KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30