Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: C++ cкрипты  (Прочитано 36540 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« : 30-05-2005 19:32 » 

Хотелось бы многое узнать о С++ скриптах. Во-первых, посоветуйте литературу для начинающего в использование С++ в качестве скрипта и о написании их. И если несложно напишите, часто - ли вы применяете такие скрипты и в каких целях.
зы: в данном вопросе полный ламер (но С++ знаю), т.е. я даже не представляю в каком виде хранятся эти скрипты, как они запускаются, функционирует, возможно-ли взаимодействие с ПХП и пр., т.е. любая верная информация будет полезна, но желательно ближе к делу. Улыбаюсь
Записан

ещё один вопрос ...
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 30-05-2005 19:47 » 

nikedeforest Если ты имееш ввиду CGI,  то почитай здесь http://www.firststeps.ru/cgi/cgi1.html
Насколько я понял по ихним объяснениям, это простая программа. Весь ввод-вывод ведется через потоки данных.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 30-05-2005 20:15 » 

Дя, я имею ввиду CGI. Спасибо Finch,  и как я мог забыть про firststep.ru???
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 30-05-2005 20:50 » 

nikedeforest, скриптами считаются интерпетируемые или компилируемые перед исполнением текстовые файлы. "С" - компилируют заранее.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 31-05-2005 11:49 » 

Пока вчитываюсь на firststeps, попозже может вопросы будут. Но пока один, из разряда зачем и почему. Прочитав пару уроков, я увидел большое сходство CGI-скриптов и ПХП (методы передачи данных к примеру (Get POST)). Я не пойму, они все реализуют одну и ту же задачу что-ли? Есть -ли смысл применять С в качестве CGI-скрипта? И, если несложно, приведите пример того, что можно сделать с помощью С и нельзя с помощью ПХП, а то на firststeps приводят пример гостевой книги, которая и на ПХП получается нормально.
Записан

ещё один вопрос ...
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 31-05-2005 11:59 » 

nikedeforest С/C++ Это универсальный язык. В принципе на нем сварганить хоть что можно. Также я видел книжку, как написать CGI на Delppi. Но сразу встает вопрос времени. ПХП, PHP заточены именно на этом, многие рутинные веши уже сделаны. Остается только твой творческий полет. PHP  и ПХП насколько я знаю, это интерпритаторы (но могу ошибаться). CGI это уже откомпилированная программа.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 31-05-2005 12:24 » 

Finch, PHP  и ПХП - это одно и тоже Улыбаюсь.
Цитата
С/C++ Это универсальный язык. В принципе на нем сварганить хоть что можно
ЗОЛОТЫЕ СЛОВА.
Записан

ещё один вопрос ...
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 13-06-2005 13:19 » 

Народ, объясните мне. Не модно что-ли сейчас использовать С++ в CGI-скриптах. Все используют ПЕРЛ. Неужели С++ уступает ПЕРЛ в чем-то?
Вопрос №2: А реально написать скрипт, который бы все время выполнялся в фоновом режиме? Кажется по другому это дело ДЕМОН называется.
На firststeps.ru че-то маловато по СGI скриптам, так сказать введение.
Записан

ещё один вопрос ...
Chaa
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 14-06-2005 03:56 » 

Почему Perl или PHP - потому, что примерно на порядок проще.
Используют ли C/C++ - да, Яндекс, например. Потому, что очень большие нагрузки и производительность критична.
Если не хватает функциональности, например, PHP, то лучше всего написать свое расширение к PHP (PHP-extension).
Записан
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 14-06-2005 09:00 » 

Спасибо, успокоил Улыбаюсь.
Вопрос №2 в силе.
Записан

ещё один вопрос ...
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #10 : 14-06-2005 09:19 » new

Реально как на Си так и на Перле.
Только ПХП для этого не годится
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #11 : 14-06-2005 10:33 » 

Perl не нуждется в компиляции...
С++ нуждается - это конкретика....

Поподробнее можно ответить примерно так.

1.Скажем когда ты пишешь все свои скрипты на С++ то ты должен писать и всю организацию вывода в нужный поток.
В перле и в пхп ничем подобным заморачивать голову не приходится.
2. Не все хостинги дают доступ к шелу, в котором можно запустить свой скрипт на компиляцию.
Не дают доступа к gcc+ и т.д.
Перл и ПХП всегда есть.
Всегда уже настроены.

Поэтому большинство скриптов пищется на таких языках.

Когда речь встает о быстродействии вспоминаем, что для выполнения программы скрипта при запросе Перл строит для каждого отдельный экземпляр своего бинарника (загребает память и быстродействие у сервера) и тогда только выполняет, поэтому чаще всего Перл более энергоемкий.

ПХП работает чаще всего как модуль Апач и поэтому имеет только один модуль бинарника запущенный на сервере с многопоточной реализацией запросов, что много легче для системы.

А С++ запускает только себя , а не весь язык С++ для выполнения, отсюда менее энергоемкость, и большая производительность...

Записан

А птичку нашу прошу не обижать!!!
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 14-06-2005 15:58 » 

Спасибо за ответы. Уже что-то в голове светлеет Улыбаюсь.
Цитата
Реально как на Си так и на Перле.
А для этого что необходимо? Т.е. я никогда не писал под UNIX, Linux и пр. только под Windows, поэтому я не могу судить чем программирование под *Nix отличается от Windows и вообще чем-то оно отличается или нет.
Мне нужен(?) какой-нибудьт справочник функций под UNIX, типа того, что по WinAPI для того чтобы написать программу, выполняющуюся в фоновом режиме?
Надо-ли мне сильно углубляться в программирование под UNIX?
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 14-06-2005 16:55 » 

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

Для ликвидации негативных особенностей CGI существует mod_perl для апача. Он существует не в виде отдельных процессов, а работает в том процессе/потоке апача, который получил HTTP-запрос на обработку. Программа компилируется и код кешируется. Соотв., нет накладных расходов на компиляцию и хранение отдельных работающих копий кода в памяти. Для разных запросов различным остается только динамическая память. Конечно, такая адаптированная система то же имеет изъяны.


nikedeforest, не стоит замарачиваться web-программированием на C++, если конечно это не острая необходимость или обучение.
Ты сам подметил главные негативные особенности C++ - программа зависима от платформы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 14-06-2005 20:45 » 

RXL, предлагаешь Perl учить?
И вопрос такой. Я что-то не понял, по поводу компиляции. Когда пишишь на Перле выкладываешь скрипт, а когда на С++, то что выкладывать-то?
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 15-06-2005 09:36 » 

1)Нет - это мой ответ на https://forum.shelek.ru/index.php/topic,6594.msg105549.html#msg105549

2) Бинарник. Потому это и никакие не скрипты, а самые обычные C/C++ программы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 15-06-2005 09:59 » 

Цитата
Бинарник.
ЕХЕшник что-ли? А как его запускать то тогда? Хостинг разрешает исполшьзовать С/С++, специально такой выбирали, немного переплатить пришлось. Получаются они мне разрешать ЕХЕшники запускать. СТОП. Нет. Я ЛАМЕР. Что такое бинарник? Само слово binary я знаю, а в качестве файла, что это. Просто, если это в моем понимании ЕХЕшник, то зачем тогда gcc, да и язык уже не имеет значения?
Блин, мне стыдно, но я прошу ответа.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 15-06-2005 10:14 » 

nikedeforest, см разницу: бинарный и текстовый.
В контексте исполняемых файлов это может быть и exe, и dll, и vxd, и elf (используется в ряде *nix-ов и к расширению не привязан), и т.д..
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 15-06-2005 10:26 » 

RXL, но как мне узнать какой файл мне класть на сервер (хостинг), чтобы  все работало. Как мне можно писать скрипты нс С/С++, работаю на Денвере. Для Перла там все просто, напишите вначале файла в комментариях путь к файлу perl.exe и ваши скрипты будут работать. А что сделать для С/С++ ничего не сказано. И все же, что кидасть на хостинг, чтобы все работало просто гуд.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 15-06-2005 11:18 » 

Еще раз отступлю от темы: термин "скрипт" (script) означает текстовый исполняемый файл, который интерпретируется другой программой, либо компилируется непосредственно перед исполнением. К C++ это не применимо. Конечно, если тебе так хочется называть - наздоровие, но только этим ты вносишь лишнюю путаницу.

Для CGI тебе нужно exe.  Если там стоит IIS, то можно делать программы под ихнее API - там другой принцип используется: программа постоянно работает и последовательно или параллельно (несколько потоков) обрабатывает запросы. Это требует обязательной проверки отсутствия утечек памяти.
С CGI проще: программа стартует в отдельном процессе при получении HTTP-запроса, получает данные заголовка в переменных окружения и общается с клиентом через stdin и stdout. CGI - вешь стандартная - поищи в инете описание, какие переменные обязательно будут и что в них ждать.

Используя perl или php ты получаешь многие вещи автоматом: параметры декодируются и помещаются в соотв. переменные. Кроме того, работа с web - это прежде всего работа с текстами, а как следствие - выделение, изменение размеров и освобождение памяти. В скриптовых языках этим занимается сама среда выполнения. В С++ это ты будешь делать сам.
Кроме того, программа на C++ будет иметь доступ ко всем ресурсам сервера, а это не безопасно.

Рекомендую поставить такой же сервер, какой будет на хостинге, себе на рабочую или домашнюю машину. Лучше еще и той же версии. Вот на нем и производи все тесты и отладки - на хостинг надо выкладывать готовый продукт.
« Последнее редактирование: 15-06-2005 11:24 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 16-06-2005 00:15 » 

RXL, а компилировать-то мне у себя или на сервере хостинга. Просто, на сервере хостинга получаеься более надежнее, но с друой стороны я даже не представляю себе как. Это вообще возможно?
Цитата
Рекомендую поставить такой же сервер, какой будет на хостинге, себе на рабочую или домашнюю машину. Лучше еще и той же версии. Вот на нем и производи все тесты и отладки - на хостинг надо выкладывать готовый продукт.
Понял.
Записан

ещё один вопрос ...
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #21 : 16-06-2005 00:17 » 

А литературы по CGI мало. Про Перл много, а вот как на С/С++ практически нет (не только мое мнение).
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 16-06-2005 07:58 » 

Я тее уже описал принцип раоты с CGI. В литературе тебе могут только дать советы чего делать, а чего нет.
Самые основноые советы:
1) все данный пользователя подлежат обязательной проверке на коректность;
2) всегда проверяй длины строк и, соотв., не используй фиксированный буферы - лучше их создавать динамически, когда длина содержимого известна;
3) данные от пользователя могут придти в любой кодировке (проверяй по строке заголовка Content-type) - придется перекодировать в кодировку сервера (точнее в ту, с которой будет раотать твоя программа и в которой будут храниться данные);
4) следствие из п.4: windows-1251 не единственная кодировка на свете и она не универсальна; я постепенно прихожу к мнению, что правильнее использовать utf-8 (unicode, но не 16 бит!).

Пока все - остальное потом
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #23 : 16-06-2005 12:04 » 

я постепенно прихожу к мнению, что правильнее использовать utf-8 (unicode, но не 16 бит!).

И это правильно! Я акого же мнения.
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #24 : 16-06-2005 14:36 » 

За это спасибо.
А что без внимание вопрос о компиляции оставили? он на один пост выше.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #25 : 16-06-2005 14:52 » 

nikedeforest, никто тебе не даст компилить на сервере - как ты это себе представляешь?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #26 : 16-06-2005 16:21 » 

Я никак, мне приятель сказал Улыбаюсь, который в этом тоже ничего не рубит Улыбаюсь, но все таки знает больше меня Улыбаюсь (мне так показалось, по его словам, он как-то пытался этим заняться, но потом забил из-за недостатка литературы).
Это значит, мне надо cygwin поставить наверное. Давно хотел, но все не решался.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #27 : 16-06-2005 19:00 » 

Причем тут cygwin?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #28 : 16-06-2005 19:20 » 

А там ведь gcc есть. Я так понял это вообще что-то типа эмулятора UNIX под Windows плюс много вской всячины в подарок. Я не прав?
Записан

ещё один вопрос ...
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #29 : 16-06-2005 19:40 » 

Я бы не назвал cygwin "эмулятором Unix" - скорее unix-подобная среда с эмуляцией некоторых ф-ий и набором стандартных unix-утилит. Ну и еще всякое разное. Но выполняется все в Windows.

Как я понял, у тебя на хостинге будет не win?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines