Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод в CGI 
V
    Опции темы
KVA
Дата 19.5.2010, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 18.11.2009

Репутация: нет
Всего: 1



Имеется 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 в двоичный вид и вывод в стандартный поток, но как это сделать?

Это сообщение отредактировал(а) KVA - 20.5.2010, 04:27
PM MAIL   Вверх
jonie
Дата 20.5.2010, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



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


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
KVA
Дата 20.5.2010, 04:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 18.11.2009

Репутация: нет
Всего: 1



Цитата

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

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

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

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

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

Это сообщение отредактировал(а) KVA - 20.5.2010, 05:30
PM MAIL   Вверх
KVA
Дата 20.5.2010, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 18.11.2009

Репутация: нет
Всего: 1



Решение найдено! Т.к. код писался в Windows, то надо было добавить
Код

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

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


Это сообщение отредактировал(а) KVA - 20.5.2010, 09:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.