The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"FastCGI - снова не понимаю момента..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"FastCGI - снова не понимаю момента..."  
Сообщение от WildFalcon email on 09-Ноя-07, 18:32 
Вот есть две элементарных программы:

Первая:

#include "fcgi_stdio.h"
#include <stdlib.h>

int main(void)
{

    int count = 0;
    while(FCGI_Accept() >= 0)
        printf("Content-type: text/html\r\n"
        "\r\n"
        "<title>FastCGI Hello!</title>"
        "<h1>FastCGI Hello!</h1>"
        "Request number %d running on host <i>%s</i>\n",
        ++count, getenv("SERVER_NAME"));    
    return 0;
}

Компилируется, и адекватно работает.

И вторая:

#include "fcgi_stdio.h"
#include <stdlib.h>
#include "network.h"

int main(void)
{
        Network nt;
    int count = 0;
    while(FCGI_Accept() >= 0)
        printf("Content-type: text/html\r\n"
        "\r\n"
        "<title>FastCGI Hello!</title>"
        "<h1>FastCGI Hello!</h1>"
        "Request number %d running on host <i>%s</i>\n",
        ++count, getenv("SERVER_NAME"));
    
    
    return 0;
}

Компилируется без сучка-без задоринки... А вот на выполнении пишет:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.

А в логе:
FastCGI: incomplete headers (0 bytes) received from server "/home/.../cgi-bin/engine.fcgi"

При том что она не заканчивает сбоем программы, процесс остается в памяти, только почему-то не выдает того что должен был бы.

Про включенный файл network.h и сам класс Network - обычные классы, используют контейнеры STL. Нигде в этом классе не происходит ввода-вывода. Что это может быть?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "FastCGI - снова не понимаю момента..."  
Сообщение от vic (??) on 09-Ноя-07, 18:40 
>Про включенный файл network.h и сам класс Network - обычные классы, используют
>контейнеры STL. Нигде в этом классе не происходит ввода-вывода. Что это
>может быть?

А фик знает, может все же и происходит ввод/вывод (инициализация каких-нить дескрипторов или смена их режима).

Еще можно попробовать поменять местами инклюды:
#include <stdlib.h>
#include "network.h"
#include "fcgi_stdio.h"

Или подключить инклюд, но класс не создавать:
#include "network.h"
...
//Network nt;

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "FastCGI - снова не понимаю момента..."  
Сообщение от WildFalcon email on 09-Ноя-07, 19:09 
>[оверквотинг удален]
>
>Еще можно попробовать поменять местами инклюды:
>#include <stdlib.h>
>#include "network.h"
>#include "fcgi_stdio.h"
>
>Или подключить инклюд, но класс не создавать:
>#include "network.h"
>...
>//Network nt;

Спасибо!!!
Кажется, действительно помогло - инклуд #include "fcgi_stdio.h" поместил последним, так оно и работает нормально, более того, и класснормально инициализируется-создается.

Интересно, а STL может самопроизвольно делать вывод ? Никогда про такое не слышал и тем более не сталкивался, а пользуюсь не первый год... Правда раньше я под виндовс писал.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "FastCGI - снова не понимаю момента..."  
Сообщение от anonymous (??) on 09-Ноя-07, 22:43 
>Интересно, а STL может самопроизвольно делать вывод ? Никогда про такое не
>слышал и тем более не сталкивался, а пользуюсь не первый год...

Я думаю, что не STL, а конструктор класса Network.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "FastCGI - снова не понимаю момента..."  
Сообщение от WildFalcon email on 12-Ноя-07, 13:58 
>>Интересно, а STL может самопроизвольно делать вывод ? Никогда про такое не
>>слышал и тем более не сталкивался, а пользуюсь не первый год...
>
>Я думаю, что не STL, а конструктор класса Network.

Вот конструктор и деструктор класса Network:

Network::Network(void)
{
}

Network::~Network(void)
{
}

Он не то что вывод, вообще ничего не делает...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "FastCGI - снова не понимаю момента..."  
Сообщение от vic (??) on 12-Ноя-07, 14:20 
Про нетворк я на всяк случай написал, а так в принципе изначально понятно что "fcgi_stdio.h" переопределяет что-то из stdio.h и как следствие должен стоять после, а не до stdio.h, иначе привет глюки.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "FastCGI - снова не понимаю момента..."  
Сообщение от WildFalcon email on 12-Ноя-07, 15:29 
>Про нетворк я на всяк случай написал, а так в принципе изначально
>понятно что "fcgi_stdio.h" переопределяет что-то из stdio.h и как следствие должен
>стоять после, а не до stdio.h, иначе привет глюки.

Так ведь stdio вообще не использовался. Вместо него fcgi_stdio и подключается.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "FastCGI - снова не понимаю момента..."  
Сообщение от vic (??) on 12-Ноя-07, 16:31 
>>Про нетворк я на всяк случай написал, а так в принципе изначально
>>понятно что "fcgi_stdio.h" переопределяет что-то из stdio.h и как следствие должен
>>стоять после, а не до stdio.h, иначе привет глюки.
>
>Так ведь stdio вообще не использовался. Вместо него fcgi_stdio и подключается.

ой, stdlib.h
одна фигня девелоперы fcgi намутили че та

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "FastCGI - снова не понимаю момента..."  
Сообщение от WildFalcon email on 12-Ноя-07, 16:47 
>ой, stdlib.h
>одна фигня девелоперы fcgi намутили че та

Это точно, что намутили... Я смотрел, там и функции файлового ввода-вывода переназначены... интересно как это скажется на работе с файлами? Потому что если с консольным вводом-выводом понятно зачем переназначали, то с файловым понять не могу.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру