CGI приложения на С/C++

Тема в разделе "LANGS.C", создана пользователем varnie, 6 фев 2008.

  1. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    всем привет!

    уже тыщщу раз читал в разных источниках, что CGI скрипты можно писать на C/C++, но нигде не видел ниодного примера.
    а любознательность меня мучает тем не менее...
    может кто-нить подскажет, как сабж делается и что для этого нужно в плане настройки веб-сервера итд итп? по логике, на сервере должен быть установлен _интерпретатор с/с++_. я прав? и еще, интересно, почему сабж не получил широкого применения? видимо есть на то какие-то объективные причины. подскажите, какие =)

    благодарю за прояснения.
     
  2. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Можно, только это уже не скрипты будут. Это скомпилированная программа, которая обрабатвает запрос и её вывод сервер отсылает клиенту.
    1. По настройке веб-сервера не подскажу.
    2. Интерпретатор не нужен, т.к. выполняется скомпилированная программа (т.е. готовый бинарник). Нужен компилятор, если собирать нужно из исходников.
    3. Слабо распространен прежде всего из-за трудоемкости разработки и из-за проблем с безопасностью (особенно актуально на виртуальном хостинге).
     
  3. Noble Ghost

    Noble Ghost New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2004
    Сообщения:
    204
    Адрес:
    Russia
    на ассемблере лучше пиши

    http://www.wasm.ru/article.php?article=easycgi
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    varnie

    Никаких настроек не надо. Асм - фтопку)) Просто складываешь бинарь в cgi-bin, а респонс сливаешь в std::cout. Глобальные данные - в переменных окружения. Все просто до безобразия.
     
  5. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    varnie
    Простой CGI на основе QTP:
    Код (Text):
    1. // gcc test.c -o test.cgi -lfcgi -lqtp
    2.  
    3. #include <stdio.h>
    4. #include <stdlib.h>
    5. #include <stddef.h>
    6. #include <string.h>
    7. #include <limits.h>
    8. #include <qtp.h>
    9.  
    10. int cgiInit() {
    11.   return 0;
    12. }
    13.  
    14. int cgiMain() {
    15.   cgiHeaderContentType("text/html");
    16.   printf(
    17. "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n"
    18. "<html>\r\n"
    19. "</html>\r\n");
    20.   return 0;
    21. }
    test.cgi положить в cgi-bin, сделать chmod +x test.cgi
     
  6. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    [offtop]
    И, предполагаю, столь же медленно. Если предполагается использование в "боевых" условиях - лучше смотреть на FastCGI.
    [/offtop]
     
  7. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    не ожидал что будет столько ответов по существу:)
    спасибо, дружыщща.
     
  8. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Voodoo
    Почему медленно-то? Этож бинарный файл, чему там тормозить?
     
  9. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    flankerx
    Созданию процесса на каждый запрос там тормозить, AFAIK. FastCGI этот фактор убирает.
     
  10. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    flankerx
    imho, fastcgi гружит один раз, а потом каждый раз вызывает из памяти. по-простому, при каждом запросе происходит загрузка. в этом и есть разница.
     
  11. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Voodoo
    censored
    Ок, спасибо.
     
  12. Kira

    Kira New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2008
    Сообщения:
    17
    Когда-то делал на заказ движок CMS на c++ все прекрасно работало (и главное быстро)
    На php все бысьрее конечно пишется но ИМХО c++ более вариабелен . Но и писать дольше...
     
  13. Kira

    Kira New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2008
    Сообщения:
    17
    О, да верстка после создания вобще отдельныцй разговор))
     
  14. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Voodoo

    Фигня полная. CGI порвет php как грелку (если руки растут откуда надо, естественно).
     
  15. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    Kira
    интересно! CMS на С++.
     
  16. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    _DEN_
    Ну какие преимущества CGI программ перед PHP, при условии качественного кеширования? Три-пять можно набрать? Не уверен. А минусов? У...

    Предлагаю или закрыть эту ветку, или предложить обоим сторонам список сравниваемых параметров. А разборки "в чьей песочнице песок лучше", без критерия оценки качества песка смысла не имеют, ИМХО.

    P.S. Вообще в плане разработки Web-проектов, лучше PHP/Perl я ничего не вижу. CGI стоит применять (если вообще применять) в очень специфических случаях, которые я сейчас даже и не приведу. CMS/CMF для Web-сайтов к этому разряду не относятся.
     
  17. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Я писал on-line disassembler на CGI, на perl'e бы тоже смог, но очень гемморно :)
     
  18. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    censored
    Один пример применения CGI есть. В этом случае скрипты похуже будут, не спорю.
     
  19. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Xerx

    Одна из крупнейших систем рунета, обрабатывающая по несколько тысяч запросов в секунду, с которой мне когда-то довелось работать, была на CGI. Это было не просто так.
     
  20. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    _DEN_
    А может там скорее был не Web-сервер, а сервер, создающий нити для входящих соединений? Сомневаюсь, что сервер с такой нагрузкой был реализован на запуск новых процессов для каждого входящего запроса.