LINUX.ORG.RU

c++ fastcgi, ошибка в работе приложения


0

0

Пытаюсь cgi-приложение перенести на fastcgi
Код для CGI:
#include <fstream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main(){
printf("Content-type: image/gif\r\n");
printf("\r\n");
ifstream in("../image.gif");
if (!in) return 1;
char buf;
buf = in.get();
while (in){
printf("%c",buf);
buf = in.get();
}
in.close();
return 0;
}


Код для FastCGI:
#include <fstream>
#include <stdlib.h>
#include "fcgi_stdio.h"
using namespace std;
int main(){
while(FCGI_Accept() >= 0) {
printf("Content-type: image/gif\r\n");
printf("\r\n");
ifstream in("../image.gif");
if (!in) return 1;
char buf;
buf = in.get();
while (in){
printf("%c",buf);
buf = in.get();
}
in.close();
}
return 0;
}

CGI пример естественно работает и выводит image.gif полностью. Пример для fastcgi выводит заголовок и кусок изображения, причем для разных gif-изображений разный, как это исправить ?
Веб сервер: Apache2
Fastcgi версии 2.4.0


Re: c++ fastcgi, ошибка в работе приложения

1. Никогда не мешайте stdio и iostream.

2. Пахнет буферизацией. Точнее, несброшеным буфером.

anonymous
()
Ответ на: Re: c++ fastcgi, ошибка в работе приложения от winger

Re: c++ fastcgi, ошибка в работе приложения

>Странно. Я сейчас у себя потестил - все работает в исходном варианте.

fcgi-вариант ?

apache2 2.2.8-1ubuntu0.2
libfcgi0ldbl 2.4.0-7
libapache2-mod-fastcgi 2.4.6-0ubuntu1

niro
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.