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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Паранормальные глюки с GCC, Паранормальные глюки с GCC 
:(
    Опции темы
lexluther
Дата 7.1.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день,

У меня есть CGI программа, написанная на C++, не делающая операций файлового ввода вывода, код которой приведен ниже. Как видите, все заголовки передаются, и никаких проблем с правами доступа физически быть не может. К тому же для исполняемого файла все права установлены в 777.

#include <stdio.h>
int main(int argc, char* argv[])
{
puts("Content-type:text/html;\n\n<br>START<br><br>");
return 0;
}

Сам механизм проблемы проявляется следующим образом:

1. Если я предварительно компилирую (g++ -o main.cgi main.cpp) данный код у себя на компьютере, то при последующем переносе данного (полностью скомпилированного) CGI-приложения на сервер программа исполняется идеально как из консоли (под SHH) так и под Apache в виде CGI.

2. В случае же, если я компилирую аналогичный код на сервере (из исходника g++ -o main.cgi main.cpp, или же из предварительно скомпилированного локально на моем компьютере объектного файла), то при запуске данного приложения как CGI, Apache выдает ошибку 500 и жалуется на заголовки. Если же я запускаю данное приложение в консоли (под SHH), то ошибки не происходит и приложение работает как ему и следует. Т.е. происходит что-то паранормальное. В консоли приложение выполняется, а в Apache нет.

ПО на сервере:
Apache/2.0.46 (Red Hat),
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-24),
GNU ld version 2.14.90.0.4 20030523

Данный механизм я протестировал несколько десятков раз с разным исходным кодом (в том числе с объектными файлами) и поэтому могу дать 100% гарантию, что все именно так и происходит. Хотя объяснить логически суть подобной ошибки я не могу.

PS: Помнится что на заре моей работы с FreeBSD, я работал с версией данной системы 4.4 и у меня происходил следующий глюк: я компилировал тестовое простое (консольное на C++) приложение с помощью GCC и приложение работало, но только до следующей перезагрузки. После перезагрузки системы при попытке запустить данное консольное приложение мне выдавалась ошибка, связанная с какими то библиотеками. Я тогда плюнул и скачал компилятор под ADA95, поскольку одинаково хорошо программирую и на этом языке.

С уважением
LeXLuTHeR
PM MAIL   Вверх
dargaard
Дата 7.1.2005, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 450
Регистрация: 7.5.2004

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



Выложи оба файла куда нить - интересно в чем они так отличаются друг от друга.


--------------------
Ты должна сделать добро из зла 
потому что его больше не из чего
сделать. Р.П.Уоррен
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




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


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

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