Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > вывод в CGI


Автор: KVA 19.5.2010, 12:42
Имеется cgi-приложение на c++. Всё настроено на Apache. Функции соответствуют posix (Linux, QNX). И есть проблема.
Код

char* res="здесь содержимое pdf-файла в нужном формате 100символов";//здесь всё верно

printf("Content-type: application/pdf; charset=utf-8%c%c",10,10);

std::cout.write(res,100);//допустим я знаю, что длина 100 символов



Так вот pdf-файл на экран выводится не полностью, наверное из-за '\n','\r' и может быть других. Как сделать полный вывод? Решение вижу в переводе res в двоичный вид и вывод в стандартный поток, но как это сделать?

Автор: jonie 20.5.2010, 00:24
Content-Length указать наверно стОит ?

Автор: KVA 20.5.2010, 04:50
Цитата

Content-Length указать наверно стОит ? 

Не помогло. Что делать?

Вывод переделала так
Код

int s=fwrite(res,sizeof(char),100,stdout);

при замене вывода в файл всё идеально, а вот в stdout нет, хотя s==100. В чем причина?

Автор: KVA 20.5.2010, 09:41
Решение найдено! Т.к. код писался в Windows, то надо было добавить
Код

#ifdef WIN32
        _setmode( _fileno( stdout ), _O_BINARY );
#endif

В *NIX и так всё ОК.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)